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

Soyez le premier à donner votre avis sur cette source.

Snippet vu 14 202 fois - Téléchargée 37 fois

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

Ajouter un commentaire Commentaires
AlKaponn Messages postés 3 Date d'inscription lundi 15 septembre 2003 Statut Membre Dernière intervention 29 novembre 2005
9 mai 2007 à 15:47
Salut et merci pour ce code fort utile lors des courses contre la montre.
Bon courage.
A+
Al Capone
RicoNuch Messages postés 140 Date d'inscription mercredi 18 juin 2003 Statut Membre Dernière intervention 16 décembre 2006
17 janv. 2007 à 00:18
Merci à Erreurs404 d'avoir signalé l'erreur. C'est arrangé.
erreurs404 Messages postés 117 Date d'inscription lundi 23 octobre 2000 Statut Membre Dernière intervention 12 août 2009
16 janv. 2007 à 23:05
Fonction pas mal, mais elle boucle si je fais :
Remplace("Bonjour ça va ?","va", "vava")
steph12358 Messages postés 149 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 10 décembre 2009 1
21 févr. 2006 à 16:35
Ca marche super !

merci beaucoup. pratique quand on est à la bourre et qu'on a pas la fonction replace...
Et tant pis pour les grincheux !

Encore merci
ejbye7 Messages postés 9 Date d'inscription mardi 25 mars 2003 Statut Membre Dernière intervention 15 février 2007
25 oct. 2005 à 11:57
Bonjour à tous.
J'avais pas mal bataillé car l'aide MSDN n'est pas claire mais en fait Replace est une fonction qui retourne une chaine donc l'exemple suivant pourra vous être utile...

chaineXML = Replace(chaineXMLTmp, Chr(9), "")

On vient de remplacer les tabulations (chr(9)) par des blancs.

Et voilà!
A+

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.