(tout est dans le titre)
chaine1 = la chaîne dans laquelle on recherche chaine2 qu'on remplace par chaine3
Source / Exemple :
Public Function repStr(ByVal Chaine1 As String, ByVal Chaine2 As String, ByVal Chaine3 As_
String, ByVal all As Boolean, Optional ByVal casse As Boolean = False, Optional ByVal_
wordonly As Boolean = False) As String
'--------------------------'
' On declare les variables '
'--------------------------'
Dim Chaine(1 To 3) As String
Dim result, C1, C2, C3, temp As String
Dim tmpLEN1, tmpLEN2, tmpLEN3, tmpPOS As Integer
Dim compteur As Long
Dim recom As Boolean
recom = False
compteur = 0
Chaine(1) = Chaine1
Chaine(2) = Chaine2
Chaine(3) = Chaine3
'----------------------------------------------------------'
' On vérifie que chaine(1) et chaine(2) ne soient pas vide '
'----------------------------------------------------------'
If (Chaine(2) = "") Then
MsgBox "Veuillez entrer une chaîne à rechercher", vbExclamation, App.Title
result = Chaine(1)
GoTo fin:
End If
If (wordonly = True) Then
Chaine(1) = " " & Chaine(1) & " "
Chaine(2) = " " & Chaine(2) & " "
Chaine(3) = " " & Chaine(3) & " "
End If
'-----------------'
' On recherche... '
'-----------------'
debut:
tmpLEN1 = Len(Chaine(2))
tmpLEN2 = Len(Chaine(1))
tmpLEN3 = Len(Chaine(3))
If (casse = True) Then
tmpPOS = InStr(Chaine(1), Chaine(2))
Else
tmpPOS = InStr(LCase(Chaine(1)), LCase(Chaine(2)))
End If
'---------------------'
' ...Puis on remplace '
'---------------------'
If (tmpPOS = 0) Then
If (recom = True) Then
result = temp & Chaine(1)
If (Not compteur = 0) Then
MsgBox "la chaîne à été remplacé " & compteur & " fois", vbInformation, App.Title
End If
GoTo fin:
Else
MsgBox "Chaîne non trouvé", vbExclamation, App.Title
result = Chaine(1)
End If
Else
C1 = Left$(Chaine(1), tmpPOS - 1)
C2 = Right$(Chaine(1), tmpLEN2 - Len(C1) - tmpLEN1)
C3 = C1 & Chaine(3) & C2
result = C3
compteur = compteur + 1
End If
If (all = True) Then
Chaine(1) = result
tmpLEN3 = Len(C1) + tmpLEN3
temp = temp & Left(Chaine(1), tmpLEN3)
Chaine(1) = Right(Chaine(1), Len(Chaine(1)) - Len(Left(Chaine(1), tmpLEN3)))
recom = True
GoTo debut:
End If
fin:
If (wordonly = True) Then
result = Left(result, Len(result) - 1)
result = Right(result, Len(result) - 1)
End If
repStr = result
End Function
Conclusion :
peut surement être optimisé
Merci de signaler d'éventuel bug
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.