begin process at 2012 02 14 05:58:25
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

VBA

 > FONCTION REPLACE NON RECONNUE DANS VBA : UNE FONCTION DE REMPLACEMENT (!)

FONCTION REPLACE NON RECONNUE DANS VBA : UNE FONCTION DE REMPLACEMENT (!)


 Information sur la source

Note :
10 / 10 - par 2 personnes
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :VBA Classé sous :replace, visualbasiceditor, vba Niveau :Débutant Date de création :25/08/2003 Date de mise à jour :17/01/2007 00:13:24 Vu :12 026

Auteur : RicoNuch

Ecrire un message privé
Commentaire sur cette source (12)
Ajouter un commentaire et/ou une note

 Description

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

  • ' 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
' 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



 Historique

17 janvier 2007 00:13:24 :
La fonction pouvait entrer en boucle si le texte de remplacement contenait lui-même le texte à rechercher. Pour éviter ça, à chaque fois que le texte recherché est trouvé, la recherche se poursuit après le remplacement de texte.

 Sources du même auteur

Source avec Zip Source avec une capture COMPARAISON DE DOSSIERS, FICHIERS ET TEXTE
Source avec Zip UTILISATION DU CONTRÔLE SSTAB
Source avec Zip Source avec une capture ASSISTANT À L'ÉDITION DE FONCTIONS IMMEDIATE IF IMBRIQUÉES
Source avec Zip SHFILEOPERATION : UNE DLL VB POUR UNE UTILISATION SIMPLIFIÉE...
Source avec Zip Source avec une capture GESTIONNAIRE DE LIAISONS ENTRE TABLES POUR LES BASES ACCESS

 Sources de la même categorie

Source avec Zip GESTION PERSONNEL par oudlarbi
Source avec Zip Source avec une capture CALENDRIER EN VBA POUR EXCEL 2010 par nounou94
Source avec Zip Source avec une capture MANIPULER LES FENETRES ENFANT D'EXCEL par bigfish_le vrai
Source avec Zip Source avec une capture COLLECTION ID par Le Pivert
Source avec Zip Source avec une capture VBA MASQUE DE SAISIE NUMÉRIQUE par acive

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture CALENDRIER EN VBA POUR EXCEL 2010 par nounou94
AUTOCAD 2010 GELÉS TOUS LES CALQUES SAUF 2 EN VBA par fabdu91630
Source avec Zip Source avec une capture TOURS DE HANOI (JEU) SOUS EXCEL (VBA) par rtoukkys
PARCOURIR DES REPERTOIRES ET SOUS REPERTOIRES SOUS EXCEL par ch92
FONCTION REPLACE POUR OFFICE 97 par erreurs404

Commentaires et avis

Commentaire de liquide le 25/08/2003 10:59:12

Peut etre est ce une betise, mais j'ai eu certains pb avec d'autres fonctions, et mon pb se trouvait dans (Projet ..... References) ou (je ne sais plus trop) certains elements n'etaient pas cochés ou alors il y avait des composants cochés mais manquant, alors il fallait les decocher. Chez moi pour que tout fonctionne bien , ce qui est coché est : Visual basic for applications,Visual basic runtime Objects et procedure, Visual Basic Objects and procedures, Ole Automation
en esperant que ca peut aider.

Commentaire de RicoNuch le 25/08/2003 12:25:51

En fait , je crois que c'est un problème spécifique aux utilisateurs de Excel 97. Je ne peux pas expérimenter parce que j'utilise Office XP. Ce qu'il faudrait, c'est une bonne astuce pour permettre aux utilisateures de Office 97 de référencer les fonctions qui leur manquent.
RicoNuch

Commentaire de liquide le 25/08/2003 16:09:40

est ce que la mise a jour par le patch ne resoud pas les pb ?????

Commentaire de RicoNuch le 25/08/2003 18:38:08

Si un utilisateur de Office 97 veut bien expérimenter...

Commentaire de akimodo le 06/11/2003 19:48:19

merci beaucoup pour le code
j'ai excel97 au taf et ça m'a dépanné

Commentaire de ferielh le 21/04/2005 10:11:14

merci beaucoup ca m'a aussi pas mal dépannée!!!!

Commentaire de RicoNuch le 21/04/2005 10:44:51

Je suis toujours content qu'une de mes sources puisse rendre service, et je remercie au passage les rares internautes qui prennent le temps d'ajouter un petit commentaire.

Rico

Commentaire de ejbye7 le 25/10/2005 11:57:32

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+

Commentaire de steph12358 le 21/02/2006 16:35:06

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

Commentaire de erreurs404 le 16/01/2007 23:05:56

Fonction pas mal, mais elle boucle si je fais :
Remplace("Bonjour ça va ?","va", "vava")

Commentaire de RicoNuch le 17/01/2007 00:18:37

Merci à Erreurs404 d'avoir signalé l'erreur. C'est arrangé.

Commentaire de AlKaponn le 09/05/2007 15:47:52

Salut et merci pour ce code fort utile lors des courses contre la montre.
Bon courage.
A+
Al Capone

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Problème VBA avec un REPLACE. [ par ferredan ] Bonjour,J'ai une feuille EXCEL dans laquelle, dans certaines cellules, il y a du texte de la forme "A=si(lc(3)=0;"";1)" (En réalité les formules sont [vba] Pb utilisation fonction replace avec excel [ par cokinoumasterflash ] Bonjour, je rencontre un problème en utilisant la fonction replace.Ce que je cherche à faire c'est de remplacer les virgules de mes cellules VBA chaines de caractères Replace Respectant la casse [ par misstickrii ] Bonjour, Je m'excuse de créer le sujet deux fois mais j'ai cherché et je n'ai pas trouvé comment modifier le sujet d'un topic! [^^drapeaublanc] Ayant Fonction replace en VBA, problème [ par Spylover ] Bonjour,j'utilise chez moi Office XP et j'utilise la fonction replace(,,,) qui fonctionne très bien, à titre pro, j'essaie d'utiliser cette fonction e Problème fonction replace(,,,) en VBA [ par Spylover ] Bonjour,j'utilise chez moi Office XP et j'utilise la fonction replace(,,,) qui fonctionne très bien, à titre pro, j'essaie d'utiliser cette fonction e Fonction replace en VBA access [ par WrestlingMan ] Voila : j'ai un petit souci ! En effet, j'ai réalisé une requête d'insertion pour un formulaire de saisie de résultats de tests sportifs ! Le problème Fermer un formulaire VBA [ par mmmxtina ] Bonjour à tous.Petite question.J'ai fais une appli qui lorsque j'ouvre un fichier excel, un formulaire s'ouvre.Ce "formulaire" propose 3 boutons, qui Probléme compil [ par jeanjeandada ] Bonjour,Voilà J'ai dans mon module 2 du classeur Excel "monclasseur" une macro qui fait appel à des functions programmé et à des fonction dans la bibl vba pivotitems format date [ par mimi840 ] Bonjour, VBA début [ par Gokunpseudo ] Bonjour je suis un étudiant qui touche un peu en langage C et qui pour des raisons perso doit se mettre au VBA.Sauf que je ne m'en sort pas c'est l'ho


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,045 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales