Réalisation d'une macro

Fermé
Cheval Bleu - 10 sept. 2016 à 19:04
Mike-31 Messages postés 18318 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 avril 2024 - 12 sept. 2016 à 07:38
Bonjour,

J'essaie de faire une macro dans Word, mais il me manque quelques connaissances.
.
Voilà ce que j'essaie de faire:
1. Je veux que l'ordinateur recherche le mot "body",
2. puis la première occurrence du mot "title",
3. qu'il remplace celui-ci par "font-size"
4. et qu'il recommence à chercher le mot "body"
Tout cela jusqu'à la fin du document.
.
Voici ce que j'ai réussi à faire jusqu'à maintenant. Comment puis-je indiquer où commence la boucle et quand elle finit?
.
With Selection.Find
.Text = "body"
.Execute
With Selection.Find
.Text = "title"
.Replacement.Text = "font-size"
.Execute Replace:=wdReplaceAll



A voir également:

1 réponse

C-Claire Messages postés 4014 Date d'inscription samedi 8 novembre 2014 Statut Membre Dernière intervention 3 octobre 2016 2 218
10 sept. 2016 à 20:34
Bonjour Cheval Bleu,

Ce que tu recherches ressemble à du code html...
Dans ton code, il manque notamment le "End With" mais le 1er "With" me perturbe car je ne vois pas ce que Word va en faire.
Je ne comprends pas ce que tu veux faire de "body". Tu le recherches, d'accord, mais tu en fais quoi ? Tu as plusieurs "body" dans ta page web ?
Pourquoi ne pas chercher/remplacer "title" directement ?

À moins que tu aies des "title" qui précèdent un "body" ?
Dans ce cas, tu peux rechercher "body*title*".
-1
J'apprécie ton aide. Mais, mais quand tu t'arrêtes sur les mots utilisés dans mon exemple, moi, ça ne m'avance pas.Je vais donc tout reformuler.
Je recherche le mot "Fruits", puis le mot "Pommes", que je veux changer pour Citron. Il peut y avoir cinq à dix mots entre "Fruits" et "Pommes". Et "Pommes" peut revenir dix fois entre deux "Fruits". Je veux juste modifier la première première occurrence.

Voici le code que j'ai réalisé jusqu'à maintenant:

With Selection.Find
.Text = "Fruits"
.Execute
And with Selection.Find
.Text = "Pommes"
.Replacement.Text = "Citrons"
.Execute Replace:=wdReplaceAll

Si mon code commence par "With", c'est parce qu'il y a d'autre changement dans mon texte avant et il y en aura d'autre aussi après
0
C-Claire Messages postés 4014 Date d'inscription samedi 8 novembre 2014 Statut Membre Dernière intervention 3 octobre 2016 2 218 > Cheval Bleu
11 sept. 2016 à 06:23
Cheval Bleu,

Merci pour le -1…
Tes fruits et tes pommes ne changent rien car je ne me suis pas focalisée sur le vocabulaire. Ma 1re ligne était une simple remarque ou plutôt une demande de confirmation qui me permettait de mieux comprendre ton objectif.

Si tu (re)lis à partir de la 2e ligne, tu verras que je réfléchis à ton problème et y amorce même un début de réponse en te suggérant de rechercher "body*title*", pardon "fruits*pommes*" et en cochant les caractères génériques. Le remplacement se ferait en reprenant la même chaîne de caractères (le code ^& en interactif) et en lui ajoutant un caractère rarement utilisé comme le §. Un 2e passage pouvait simplement rechercher pommes§ et le remplacer par citrons. On doit pouvoir le faire en un seul passage. Avant de coder, il faut déjà le faire en interactif.

Mais plus trop envie de me décarcasser... Je cède volontiers la place à quelqu'un qui te fera ça clé en main et j'attends un -2 ;-)

C-Claire
0
Je suis désolé pour ton -1, mais ça ne vient pas de moi. Je n'ai rien à gagner à insulter les gens qui veulent m'aider.
Je te remercie pour ton retour. Je vais prendre le temps de l'étudier et je verrai ensuite ce que je peux faire.
0
C-Claire Messages postés 4014 Date d'inscription samedi 8 novembre 2014 Statut Membre Dernière intervention 3 octobre 2016 2 218 > Cheval bleu
11 sept. 2016 à 16:46
Cheval Bleu,

À mon tour de m'excuser. Pour le -1, je l'ai rapporté au ton de ta réponse.
Maintenant, je comprends à qui je le dois. Il n'y a que 3 personnes ici capables de perfidie à mon égard et qui jouent du compteur sans avoir le courage de justifier leur note ni, en l'occurrence, d'apporter un début de solution.

Mais peu importe. Je ferme cette parenthèse qui ne te concerne donc pas et repartons sur une meilleure base ;-)

C-Claire
0
telliak Messages postés 3655 Date d'inscription mercredi 20 septembre 2006 Statut Membre Dernière intervention 27 mars 2024 875 > C-Claire Messages postés 4014 Date d'inscription samedi 8 novembre 2014 Statut Membre Dernière intervention 3 octobre 2016
11 sept. 2016 à 23:45
-1, quel -1 ? :)
0