OVH Cloud OVH Cloud

Aide macro

7 réponses
Avatar
Barsalou
Bonjour,

Je voudrais créer une macro qui modifie la taille des caractères d'une
police donnée (et pas des autres).
Ce serait encore mieux si la modif dépendait du caractère au lieu d'être la
même pour tous.

Quelqu'un peut-il me donner le bout de code ad-hoc ou une piste ?

Merci d'avance

7 réponses

Avatar
Bonsoir à tous,
Connais tu la commande rechercher/remplacer ?
Elle semble très adapter à ce que tu as commencer à demander.

Merci d'avoir lu jusque là.


"Barsalou" a écrit dans le message de news: eXiSFSw%
Bonjour,

Je voudrais créer une macro qui modifie la taille des caractères d'une police donnée (et pas des autres).
Ce serait encore mieux si la modif dépendait du caractère au lieu d'être la même pour tous.

Quelqu'un peut-il me donner le bout de code ad-hoc ou une piste ?

Merci d'avance


Avatar
Geo

Bonsoir à tous,
Connais tu la commande rechercher/remplacer ?
Elle semble très adapter à ce que tu as commencer à demander.


J'ai l'impression que Barsalou a eu des soucis avec
rechercher/remplacer et l'enregistreur de macro.
Pourtant ça marche bien chez moi, exemple :
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
Selection.Find.Replacement.Font.Size = 16
With Selection.Find
.Text = "é"
.Replacement.Text = "é"
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll


--
A+

Avatar
Bonsoir à tous,
Bonsoir Geo,
J'ai l'impression que Barsalou a eu des soucis avec
Oui tu as raison je n'avais pas lu les noms de ces deux messages de suite :-(.


La question, c'est, quand même, pourquoi par macro ?

Merci d'avoir lu jusque là.

"Geo" a écrit dans le message de news:

Bonsoir à tous,
Connais tu la commande rechercher/remplacer ?
Elle semble très adapter à ce que tu as commencer à demander.


J'ai l'impression que Barsalou a eu des soucis avec rechercher/remplacer et l'enregistreur de macro.
Pourtant ça marche bien chez moi, exemple :
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
Selection.Find.Replacement.Font.Size = 16
With Selection.Find
.Text = "é"
.Replacement.Text = "é"
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll


--
A+





Avatar
Geo

Bonsoir à tous,
Bonsoir Geo,
J'ai l'impression que Barsalou a eu des soucis avec
Oui tu as raison je n'avais pas lu les noms de ces deux messages de suite :-(.


La question, c'est, quand même, pourquoi par macro ?


Par exemple s'il veut faire le truc pour chacune des lettres
d'alphabet, avec deux macros il aura vite fait et même refait si
nécessaire.

--
A+


Avatar
Barsalou
Merci de vos contributions mais je n'ai pas été bien compris.

Je souhaite que lettre A, par exemple, si elle est en Bodoni, soit
transformée en W dans la police Arial, et d'une taille deux points
supérieure à celle du A original.
Donc A Bodoni de 12 points doit être remplacé par W Arial de 14 points, et
peut-être B Bodoni de 10 points par Z Arial de 12 points, etc.
D'une part je pense que la commande RR simple ne suffit pas, et d'autre part
je ne sais pas comment implémenter dans une macro l'augmentation de taille
car la taille finale dépend de la taille initiale.

A+
Avatar
Anacoluthe
Bonjour !

'Barsalou' nous a écrit ...
je ne sais pas comment implémenter dans une macro l'augmentation de
taille car la taille finale dépend de la taille initiale.


Pour augmenter de 2 la taille de la police d'une portion de texte :
MonRange.Font.Size = MonRange.Font.Size + 2
Difficile de faire plus simple ;-)

Utilisez le RR (objet Find) pour trouver vos caractères
et appliquez vos mises en forme à chaque élément trouvé.

Anacoluthe
« Pourquoi faire simple quand on peut faire compliqué ? »
- Jacques ROUXEL

Avatar
Barsalou
Merci du tuyau

Si je veux faire compliqué c'est parce que simple (RR) est trop long, car
j'ai beaucoup de documents à traiter, d'où le souhait d'avoir une macro.

Mon idée de macro est la suivante :
- rechercher tout caractère d'une certaine police
- faire un select case sur la valeur du caractère trouvé (cette valeur
est-elle selection.find.text ? ou MonRange.text ?)
- selon le cas changer le caractère (selection.replacement.text = "nouveau
chr") la police (selection.replacement.font = "newfont") et la taille
(MonRange.Font.Size = MonRange.Font.Size + 2 ?)

Ou différemment (macro plus longue) :
- rechercher successivement tous les caractères d'une certaine police qui
sont à modifier
- faire les changements
Dans ce cas MonRange.Font.Size = MonRange.Font.Size + 2 fonctionne-t-il ?