Fonction replace pour office 97

Soyez le premier à donner votre avis sur cette source.

Snippet vu 7 937 fois - Téléchargée 258 fois

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

Ajouter un commentaire

Commentaire

Renfield
Messages postés
17280
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
21 juillet 2019
57 -
une version qui comprend en prime l'argument Compare :

http://www.vbfrance.com/codes/MINI-FONCTION-REPLACE-POUR-VB5_24559.aspx

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.