Fonction "remplace" dans une chaîne de caractères

Contenu du snippet

Remplace dans une chaine de caractères une expression par une autre en contrôllant le nomgre de remplacements et avec option de message.

Source / Exemple :


Private Function Remplace(mot, anc, nouv, n, affichage as boolean)
 'remplace dans mot les n premières occurences (au maximum) de la chaîne anc par la chaîne nouv
 'les chaînes mot, anc et nouv sont de longeurs quelconques ,(mêmes vides sauf anc)
 ' si n <0 le nombre de remplacements n'est pas limité
 ' si affichage est True, un message donnant le nombre de remplacements est donné
 Dim a As Long, b As Long, c As Integer, i As Integer
  
 If mot = "" Or InStr(mot, anc) = 0 Then  Remplace = mot:Exit Function
 If anc = "guillemet" Then anc = Chr(34)
 If nouv = "guillemet" Then nouv = Chr(34)
 b = 0: c = 0
 Do
  If b Then a = b + Len(nouv) Else a = 1
  b = InStr(a, mot, anc)
  If b Then mot = Left(mot, b - 1) + nouv + Mid(mot, b + Len(anc)): c = c + 1
  Select Case n
   Case Is = 0
    Exit Function
   Case Is > 0
    If c = n Then Exit Do
  End Select
 Loop Until b = 0
 Remplace = mot
 If affichage Then MsgBox CStr(c) + " remplacements ont été effectués", vbOKOnly
End Function

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.