Macro ou astuce : Surligner certains caractères

Résolu/Fermé
Rod78 - Modifié le 12 déc. 2021 à 18:20
 Rod78 - 28 nov. 2022 à 23:40
Bonjour,
Je suis en prépa, j'ai d'énormes quantités de textes divers à surligner chaque jours. Je me suis fait depuis le début de l'année quelque chose de précis : les dates (1987, 1567 = série de 4 chiffres) en vert, les auteurs (SMITH, COLBERT, FAMA = série >= 3 lettres en majuscules) en bleu, et d'autres choses, mais qui ne pourront pas être automatisés car représentant qq chose de trop hétérogène.

Je cherche un moyen d'automatiser le surlignage. J'ai déjà trouvé une macro qui me permet d'avoir la liste des tous les auteurs (le code ici :https://faqword.com/index.php/word/outils-edition/376-comment-recuperer-tous-les-sigles-dun-document-pour-les-lister-a-la-fin-de-ce-document

Je ne sais pas coder moi meme ce genre de chose. Je me demandais s'il y avait une possibilité de mettre des listes plutot que des mots singuliers dans la fonction remplacer de word, ou alors la possibilité de modifier la macro pour qu'elle surligne au lieu de me créer un nouveau document avec la liste des auteurs.

Merci d'avance !


Configuration: Windows / Chrome 96.0.4664.93
A voir également:

4 réponses

Raymond PENTIER Messages postés 58777 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 24 décembre 2024 17 258
12 déc. 2021 à 23:28
Bonjour.

Un morceau de réponse : c'est NON pour la question "Je me demandais s'il y avait une possibilité de mettre des listes plutot que des mots singuliers dans la fonction remplacer de word" ...
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 248
14 déc. 2021 à 00:23
Bonjour à tous,

fait à l'arrache vue l'heure et que je ne connais pas bien vba de word.
Sûrement des fignolages à faire mais ça te donnera une base de départ.
Sub surlig()
Dim wd As Object
For Each wd In ThisDocument.Words
If Trim(wd.Text) Like "####" Then
wd.Select
Selection.Range.HighlightColorIndex = wdBrightGreen
ElseIf Len(wd.Text) >= 3 And wd.Text = UCase(wd.Text) Then
If wd.Text Like "[A-Z][A-Z][A-Z]*" Then
wd.Select
Selection.Range.HighlightColorIndex = wdTurquoise
End If
End If
Next
End Sub

Je contrôle que les 3 premières lettres soient dans la tranche A-Z, sinon >= se retrouve surligné vu que ça s'écrit pareil en minuscule/majuscule.
https://www.cjoint.com/c/KLnxw0UZIaD
eric

0
Merci, je vais tester ça !
0
Hum, je comprends plus ou moins le code, ça me parait tout a fait cohérent, mais lorsque je l'éxecute, rien ne se passe.
Je sais à peu pres coder en Python, mais là je serais incapable de modifier quelque chose sans tout casser, auriez-vous une idée pour l'améliorer ? Ou est-ce un problème de mon côté uniquement ?
Merci.
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 248 > Rod78
17 déc. 2021 à 17:39
Bonjour,
le fichier fourni fonctionne bien chez moi, je ne vois pas quoi améliorer pour ça.
Pas toi ?
eric
0
Rod78 > eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024
17 déc. 2021 à 17:59
Oui, c'est étrange, quand je le fais avec votre fichier, ça marche, mais quand je copie colle le code pour créer la macro sur mes propres fichiers, je les lance, et ça ne fait rien...
Auriez-vous une idée pour régler ça ?
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 248 > Rod78
Modifié le 18 déc. 2021 à 00:12
Tu colles dans un module standard que tu ajoutes au document ?
Avec ThisDocument c'est celui où est la macro qui est traité.
Sinon dépose un fichier de test où tu l'as mise que je vois de mon coté.
Tu as peut-être des caractères qui parasitent la recherche. Essaie d'y mettre le maximum de cas potentiellement différents.
eric
0
m@rina Messages postés 21207 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 24 décembre 2024 11 370
14 déc. 2021 à 23:59
Bonjour à tous (coucou à Raymond et Eric ;) )

A toutes fins utiles, j'ai une macro qui peut vous être utile :
https://faqword.com/index.php/word/10-mise-en-forme/1182-comment-en-une-seule-operation-appliquer-un-format-particulier-a-plusieurs-expressions-dissemines-dans-un-document

m@rina
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 248
15 déc. 2021 à 00:08
Coucou m@rina :-)
0
Merci, je vais regarder !
0

Bonjour ! J'utilise votre macro en plus de celle d'eriiic depuis plus d'un an (celle ci : https://www.faqword.com/index.php/word/outils-edition/376), et cela m'aide énormément. Mais hier en voulant l'appliquer, word m'a affiché "erreur de compilation, sub ou fonction non définie", alors que je ne crois pas avoir modifier quoi que ce soit. J'ai essayé de regarder moi meme, mais je ne comprends pas ce que je devrais modifier pour la refaire fonctionner. J'ai essayer de changer le nom de la fonction, car je crois que c'est de là d'où vient le probleme, mais ça ne change rien.

Pourriez-vous m'aider ?

Merci !

0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 248
16 déc. 2021 à 12:47
Encore un qui suit bien ses demandes.
De rien Rod 78 !
0
Wow, beaucoup de travail cette semaine j'attendais le Week-End pour répondre !
0