Fonction replace pour office 97

Contenu du snippet

Cette fonction n'existait pas sur Office 97 et inférieurs.

Source / Exemple :


Public Function Remplace(ByVal classStringValue As String, _
                            ByVal strSearch As String, _
                            ByVal strReplac As String, _
                            Optional ByVal IntStart As Integer = 0, _
                            Optional ByVal intCount As Integer = 2 ^ 16 / 2 - 1) As String
' ------------------------------------------------
' strSearch     :   chaîne recherchée
' strReplac     :   chaîne qui se substituera
' IntStart      :   Nombre d'occurrences à partir de laquelle commenceront les remplacements (par défaut 0)
' IntCount      :   Nombre de valeurs qui seront remplacées (par défaut le maximum pour un type Integer)
' ------------------------------------------------

Dim i As Integer, iCount As Integer, iStart As Integer
Dim strOut As String 'chaîne qui contiendra le résultat
iCount = 0
iStart = 0

If Len(classStringValue) > 0 Then
 i = 1
 ' Boucle qui parcourt la chaîne
 Do While i <= Len(classStringValue)
  If Mid(classStringValue, i, Len(strSearch)) = strSearch And iCount < intCount Then
   'cas d'une occurence trouvée et le nb maximum de remplacements n'est pas atteint
   If iStart >= IntStart Then
    strOut = strOut & strReplac
    i = i + Len(strSearch)
    iCount = iCount + 1 'on incrémente le compteur de remplacements
    iStart = iStart + 1 'on incrémente le compteur d'occurences trouvées
   Else 'le nombre de remplacement est atteint on laisse le caractère d'origine
    iStart = iStart + 1
    strOut = strOut & Mid(classStringValue, i, 1)
    i = i + 1
   End If
  Else  'il n'y a pas de remplacement à faire la chaîne recherchée n'est pas trouvée
   strOut = strOut & Mid(classStringValue, i, 1)
   i = i + 1
  End If
 Loop
 
 Remplace = strOut
Else
 Remplace = ""
End If

End Function

Conclusion :


Contrairement à d'autres sources ... elle ne plante pas si on fait
Remplace("Hello world !","lo","lolo")

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.