Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Remplacement de police

5 réponses
Avatar
cosinus
Bonsoir,


Je dispose d'un document-type sous Word 2000,à utiliser de manière
régulière dans mon travail, où l'auteur a cru bon de mettre des
exemples en police Lucida Console.

Je voudrais écrire une macro pour supprimer ces exemples, et ne garder
que le squelette du document.

En utilisant la fonction Rechercher/remplacer, j'arrive à supprimer
manuellement tout le texte rédigé dans cette police. Mais lorsque
j'essaye d'enregistrer la manip avec l'enregistreur de macros,
j'obtiens une macro qui fait péter quasi tout le texte, quelle que
soit la police, plus des perturbations majeures dans les titres.

L'analyse du code de la macro ne m'a rien appris (mais je n'y connais
pas grand chose), j'ai juste noté que le nom de la police n'y figurait
pas, ce qui me paraît bizarre.


Le même type de macro appliqué non au choix de la police, mais à un
autre caractère (la couleur) fonctionne bien, en revanche. Et là,
l'identification de la couleur à supprimer figure bien dans le code de
la macro.

Je n'ai rien compris ? ou bien s'agit-il d'un gros bug ?

Merci d'avance de votre aide.

cosinus

--
"une panne peut en cacher une autre" (théorème de la SNCF)

5 réponses

Avatar
Gilgamesh
Bonsoir,


Je dispose d'un document-type sous Word 2000,à utiliser de manière
régulière dans mon travail, où l'auteur a cru bon de mettre des exemples
en police Lucida Console.

Je voudrais écrire une macro pour supprimer ces exemples, et ne garder
que le squelette du document.

En utilisant la fonction Rechercher/remplacer, j'arrive à supprimer
manuellement tout le texte rédigé dans cette police. Mais lorsque
j'essaye d'enregistrer la manip avec l'enregistreur de macros, j'obtiens
une macro qui fait péter quasi tout le texte, quelle que soit la
police, plus des perturbations majeures dans les titres.

L'analyse du code de la macro ne m'a rien appris (mais je n'y connais
pas grand chose), j'ai juste noté que le nom de la police n'y figurait
pas, ce qui me paraît bizarre.


Le même type de macro appliqué non au choix de la police, mais à un
autre caractère (la couleur) fonctionne bien, en revanche. Et là,
l'identification de la couleur à supprimer figure bien dans le code de
la macro.

Je n'ai rien compris ? ou bien s'agit-il d'un gros bug ?

Merci d'avance de votre aide.

cosinus

Bonjour,

le plus simple ca serait d'envoyer le code de la macro.
Bonne journée.
Gilgamesh

Avatar
Circé
Bonjour cosinus,

Effectivement, bien qu'il soit ton ami (sic) l'enregistreur de macros
n'enregistre pas tout !

Tu peux utiliser la macro suivante :

Sub lucida()

With Selection.Find
.Font.Name = "Lucida Console"
.Replacement.Font.Name = "Arial"
.Forward = True
.Wrap = wdFindContinue
.Format = True
.Execute Replace:=wdReplaceAll
End With

End Sub

Il y a d'autres moyens pour remplacer les polices mais celle ci devrait
fonctionner.

Cela dit, si ton collègue avait utilisé un style pour ses exemples, il
aurait suffi de modifier la police du style... D'où le grand intérêt
des styles !

Circé
http://faqword.free.fr

cosinus a exprimé avec précision :
Bonsoir,


Je dispose d'un document-type sous Word 2000,à utiliser de manière régulière
dans mon travail, où l'auteur a cru bon de mettre des exemples en police
Lucida Console.

Je voudrais écrire une macro pour supprimer ces exemples, et ne garder que le
squelette du document.

En utilisant la fonction Rechercher/remplacer, j'arrive à supprimer
manuellement tout le texte rédigé dans cette police. Mais lorsque j'essaye
d'enregistrer la manip avec l'enregistreur de macros, j'obtiens une macro qui
fait péter quasi tout le texte, quelle que soit la police, plus des
perturbations majeures dans les titres.

L'analyse du code de la macro ne m'a rien appris (mais je n'y connais pas
grand chose), j'ai juste noté que le nom de la police n'y figurait pas, ce
qui me paraît bizarre.


Le même type de macro appliqué non au choix de la police, mais à un autre
caractère (la couleur) fonctionne bien, en revanche. Et là, l'identification
de la couleur à supprimer figure bien dans le code de la macro.

Je n'ai rien compris ? ou bien s'agit-il d'un gros bug ?

Merci d'avance de votre aide.

cosinus


Avatar
cosinus
Bonjour cosinus,

Effectivement, bien qu'il soit ton ami (sic) l'enregistreur de macros
n'enregistre pas tout !

Tu peux utiliser la macro suivante :
...



Bonsoir,

Merci pour la macro... je l'ai essayée, ça marche pas mal... sauf que
ça remplace le texte Lucida en Arial ! Or, je voudrais supprimer
purement et simplement le texte en Lucida.


Or voici ce que l'enregistreur de macro m'avais livré (quel bavard!)

Sub Supprimer_Lucida()

Selection.Find.ClearFormatting
Selection.Find.Font.Color = wdColorAutomatic
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "^?"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindAsk
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub

Du coup, j'ai remplacé dans ta macro .Replacement.Name = "Arial"
par .Replacement.Text = ""

et ouhééé ça marche !

Donc merci pour m'avoir mis sur la voie - et par là même permis de
faire ma première macro Word !

Sinon, j'ai essayé aussi de faire avec les styles, mais lorsque je
supprime un style, ça perturbe la mise en page. Bon, je crois que je
vais m'arrêter là pour cette affaire...


A+ pour de nouvelles aventures.

cosinus

--
"une panne peut en cacher une autre" (théorème de la SNCF)

Avatar
Tisane
Bonjour "cosinus",

Merci pour la macro... je l'ai essayée, ça marche pas mal... sauf que ça
remplace le texte Lucida en Arial ! Or, je voudrais supprimer purement et
simplement le texte en Lucida.


Pourquoi dis-tu "En utilisant la fonction Rechercher/remplacer, j'arrive à
supprimer manuellement tout le texte rédigé dans cette police."

"Manuellement" ? Après avoir indiqué la police recherchée (Lucida), et en
laissant vide la zone de remplacement, puis en cliquant sur [Remplacer
tout], l'opération se fait automatiquement et en une seule fois.
En tout cas, ce n'est pas plus manuel que de devoir rédiger les lignes de
code, exécuter la macro sans oublier au préalable de baisser le niveau de
sécurité.
Bien entendu, je parle dans le cas d'une opération non répétitive. Quoique
avec le rechercher/remplacer, ce soit très rapide...
Cette précision au cas où d'autres utilisateurs auraient la même demande
mais ne voudraient pas se lancer dans les macros.

Maintenant, si c'était juste par curiosité "intellectuelle", bravo !

--
Tisane




Or voici ce que l'enregistreur de macro m'avais livré (quel bavard!)

Sub Supprimer_Lucida()

Selection.Find.ClearFormatting
Selection.Find.Font.Color = wdColorAutomatic
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "^?"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindAsk
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub

Du coup, j'ai remplacé dans ta macro .Replacement.Name = "Arial"
par .Replacement.Text = ""

et ouhééé ça marche !

Donc merci pour m'avoir mis sur la voie - et par là même permis de faire
ma première macro Word !

Sinon, j'ai essayé aussi de faire avec les styles, mais lorsque je
supprime un style, ça perturbe la mise en page. Bon, je crois que je vais
m'arrêter là pour cette affaire...
A+ pour de nouvelles aventures.

cosinus

--
"une panne peut en cacher une autre" (théorème de la SNCF)


Avatar
Circé
Bonjour cosinus

cosinus a exprimé avec précision :


Merci pour la macro... je l'ai essayée, ça marche pas mal... sauf que ça
remplace le texte Lucida en Arial ! Or, je voudrais supprimer purement et
simplement le texte en Lucida.


Au temps pour moi !
Je n'avais pas compris que tu voulais aussi supprimer le texte !!
Ça t'a permis de rentrer dans le mystère des macros ! ;)
Un petit article de la faq pour macroteurs débutants (par anacoluthe) :
http://faqword.free.fr/articles.php?lng=fr&pg48

et un autre pour tout savoir sur la face cachée du Recherche-Remplace :
http://faqword.free.fr/articles.php?lng=fr&pg22

Bonne lecture ! ;)

Circé
http://faqword.free.fr