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

TechLeader 4 Messages postés mardi 10 novembre 2009Date d'inscription 12 janvier 2011 Dernière intervention - 10 nov. 2009 à 16:05 - Dernière réponse : TechLeader 4 Messages postés mardi 10 novembre 2009Date d'inscription 12 janvier 2011 Dernière intervention
- 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

Répondre au sujet
jmf0 1566 Messages postés mardi 26 décembre 2000Date d'inscription 5 avril 2013 Dernière intervention - 10 nov. 2009 à 16:54
+3
Utile
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)
.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de jmf0
jmf0 1566 Messages postés mardi 26 décembre 2000Date d'inscription 5 avril 2013 Dernière intervention - 10 nov. 2009 à 16:55
0
Utile
Attends ! je viens de te relire ===>> filtre plus précis : "P########-#"
Commenter la réponse de jmf0
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 10 nov. 2009 à 16:57
0
Utile
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
jmf0 1566 Messages postés mardi 26 décembre 2000Date d'inscription 5 avril 2013 Dernière intervention - 10 nov. 2009 à 16:59
0
Utile
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
cboulas 2641 Messages postés mercredi 2 juin 2004Date d'inscription 8 janvier 2014 Dernière intervention - 10 nov. 2009 à 20:37
0
Utile
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
TechLeader 4 Messages postés mardi 10 novembre 2009Date d'inscription 12 janvier 2011 Dernière intervention - 12 nov. 2009 à 09:04
0
Utile
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

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.