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

Soyez le premier à donner votre avis sur cette source.

Snippet vu 13 770 fois - Téléchargée 35 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
-
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
-
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
-
Fonction pas mal, mais elle boucle si je fais :
Remplace("Bonjour ça va ?","va", "vava")
steph12358
Messages postés
150
Date d'inscription
jeudi 22 avril 2004
Statut
Membre
Dernière intervention
10 décembre 2009
-
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
-
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.