Macro Word chercher remplacer chaine de caractere par formalisme. [Résolu]

Messages postés
4
Date d'inscription
mardi 10 novembre 2009
Statut
Membre
Dernière intervention
12 janvier 2011
- - Dernière réponse : TechLeader
Messages postés
4
Date d'inscription
mardi 10 novembre 2009
Statut
Membre
Dernière intervention
12 janvier 2011
- 12 nov. 2009 à 09:04
Bonjour,
Tout d'abord sachez que c'est mon premier poste sur votre Site que je consulte régulierement, donc merci pour tout.

Je doit créer une macro sous Word afin de rechercher et remplacer du texte (jusqu'ici je sais faire).
Là ou cela ce complique c'est je dois remplacer des chaines qui repondent à un certain formalisme.

J'ai des chaine du type "p18923456-5"
d'autre du type "p18923456-5N"

Le but de cette macro est donc de rajouter le N la ou il n'y en a pas.
Ces chaines répondes toujours au meme formalisme:
P + 8 caracteres +"-"+ 1 caratere (Plus "N") le tous encadré par des espaces.

Espérant avoir été assez clair je compte sur vous car mon niveau en VBA est hazardeux.
Afficher la suite 

6 réponses

Meilleure réponse
Messages postés
1566
Date d'inscription
mardi 26 décembre 2000
Statut
Membre
Dernière intervention
5 avril 2013
3
3
Merci
Bonjour,

Il te faut "éclater" ta chaîne dans un array (la fonction split à voir dans ton aide en ligne)
Tu peux (selon ton contexte, "éclater" en utilisant le séparateur espace ou le séparateur " (qui me parait mieux ici)
Tu parcours ensuite les items de l'array obtenu et tu compares en utilisant l'opérateur Like (à voir dans ton aide en ligne) en appliquant le filtre "?########-#" ===>> si correspondance : tu ajoutes ton "N" derrière.
Tu recomposes ton texte ensuite, par concaténation des items ainsi modifiés et de ton séparateur.
Voilà ! Dit ainsi, cela peut paraître du chinois, mais ce sera très clair lorsque tu te seras documenté sur la fonction Split et sur l'opérateur Like. (en supposant, bien évidemment, que tu sais parcourir au moins, par boucle For .. to ..., les items d'un Array)
.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 139 internautes nous ont dit merci ce mois-ci

Commenter la réponse de jmf0
Messages postés
1566
Date d'inscription
mardi 26 décembre 2000
Statut
Membre
Dernière intervention
5 avril 2013
3
0
Merci
Attends ! je viens de te relire ===>> filtre plus précis : "P########-#"
Commenter la réponse de jmf0
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
58
0
Merci
Salut
Essaye ça :
If maChaine Like "p[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]-[0-9]" Then
  maChaine = maChaine & "N"
End If
[0-9] est sensé remplacer un chiffre de 0 à 9
Voir [a-z] pour les lettres ...

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Commenter la réponse de cs_Jack
Messages postés
1566
Date d'inscription
mardi 26 décembre 2000
Statut
Membre
Dernière intervention
5 avril 2013
3
0
Merci
Salut, Jack,
le caractère générique #, tout simplement ... (il ne représente qu'un numérique, donc de 0 à 9, précisément.
Commenter la réponse de jmf0
Messages postés
2641
Date d'inscription
mercredi 2 juin 2004
Statut
Membre
Dernière intervention
8 janvier 2014
9
0
Merci
Salut, et avec RECHERCHEV ou RECHERCHEH, ça marche pas ?

Chris...
- La vérité n'est pas ailleurs, elle est sous le nez de chacun, quelques mouvements neuronale permettent de l'entrevoir -
MCPD (webform-winform) / MCSA / MCDST / MCT
Commenter la réponse de cboulas
Messages postés
4
Date d'inscription
mardi 10 novembre 2009
Statut
Membre
Dernière intervention
12 janvier 2011
0
Merci
Merci pour vous prompts réponses.

Je m'en suis sorti avec les fonction split et like.

Esperant humblement pouvoir vous dépanner un jour.

Cordialement.
Commenter la réponse de TechLeader