Fonction replace non reconnue dans vba : une fonction de remplacement (!)

Contenu du snippet

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

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.