J'ai échangé à deux reprises des messages avec des utilisateurs de VBA Excel confrontés à l'absence de la fonction "Replace" dans leur éditeur. J'engage les personnes connaissant la solution à ce problème à nous la communiquer. En attendant, on pourra toujours se dépanner avec cette petite fonction à coller dans un module de code.
Source / Exemple :
' Texte = texte où rechercher l'expression à remplacer.
' TexteRecherché = expression à remplacer.
' NouveauTexte = expression de remplacement.
' Départ = numéro de caractère du début de la recherche, commençant à 1.
Public Function Remplacer(ByVal Texte As String, ByVal TexteRecherché As String, _
ByVal NouveauTexte As String, Optional ByVal Départ As Integer = 1) As String
Dim strTemp1 As String, strTemp2 As String
Dim I As Integer
On Error GoTo RemplacerErr
strTemp1 = Texte
I = InStr(Départ, strTemp1, TexteRecherché)
Do Until I = 0
strTemp2 = Left(strTemp1, I - 1) & NouveauTexte _
& Right(Texte, Len(strTemp1) - I - Len(TexteRecherché) + 1)
strTemp1 = strTemp2
I = InStr(I + Len(NouveauTexte), strTemp1, TexteRecherché)
Loop
Remplacer = strTemp1
Exit Function
RemplacerErr:
' Gestion d'erreur simplissime, il ne peut pas se passer grand-chose
' sauf si Départ est inférieur à 1
Select Case Err.Number
Case Else
Err.Raise Number:=vbObjectError + 1000, _
Description:="Erreur dans la fonction Remplacer : " & vbCrLf & Err.Description
End Select
End Function
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.