Macro Word remplacer les guilements anglais-> français

Fermé
TOT127 Messages postés 898 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 7 août 2018 - 25 févr. 2017 à 14:31
Argitxu Messages postés 4831 Date d'inscription dimanche 22 juillet 2007 Statut Contributeur Dernière intervention 3 mars 2024 - 27 févr. 2017 à 02:51
Bonjour,
Je cherche à faire une macro pour microsoft word pour remplacer les "" anglais par les guillemets français. Je dois le faire souvent, une macro aiderait.

“mot”
« mot »

avec les espaces insécables entre "«" et "mot"


comment peut-on faire ça ?
merci!
A voir également:

1 réponse

Argitxu Messages postés 4831 Date d'inscription dimanche 22 juillet 2007 Statut Contributeur Dernière intervention 3 mars 2024 4 761
26 févr. 2017 à 18:41
Bonjour

Pas besoin de macro, une option word prévoit l’alternative.
Aller dans :
Fichier | Options | options avancées | Onglet Vérification | Options de correction automatique | onglet ‘lors de la frappe’ : et là cocher ‘Remplacer Guillemets ' ' ou "" par des guillemets «»’
L'espace insécable est automatique

2
TOT127 Messages postés 898 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 7 août 2018 96
26 févr. 2017 à 19:50
Bonjour,
Merci de ton message.
c'était déjà coché, et en fait, je me rends compte que le problème que j'ai intervient au moment des copiers-collers et des changement 2 langues (habituellement 3 langues dans le fichier).
Du coup là, besoin d'une macro ? Pour "nettoyer" tous les 3/4jours quoi, ou nettoyer avant de se lancer dans une révision globale
merci :)
0
Argitxu Messages postés 4831 Date d'inscription dimanche 22 juillet 2007 Statut Contributeur Dernière intervention 3 mars 2024 4 761 > TOT127 Messages postés 898 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 7 août 2018
Modifié par Argitxu le 26/02/2017 à 21:40
Effectivement, dans ces conditions ce sera plus aisé d'automatiser un peu

Pour faire le remplacement, utilise le recherche/remplace de la seconde solution de ce tuto avec un espace insécable (les 2 dernières lignes). Il faut lire qu'il faut aussi cocher les caractères génériques avant de lancer le recherche/remplace. Tu peux faire un copier/coller des commandes
https://www.faqword.com/index.php/word/mise-en-forme/929

Si tu ne le fais qu'occasionnellement, autant enregistrer ce Recherche/Remplace en macro :
- Onglet Développeur
- Cliquer sur Enregistrer une macro
- Saisir un nom dans le champ Nom (dans le normal.dotm)
- Lui affecter un raccourci clavier
- Faire le recherche/remplace
- Cliquer sur Arrêter l'enregistrement.
Si ça t'intéresse, on peut aussi l'enregistrer dans la barre d'outils rapide.

C'est bon ?

Argitxu
0
TOT127 Messages postés 898 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 7 août 2018 96
26 févr. 2017 à 21:43
presque.
Sauf pour l'espace, je n'ai pas compris ceci:
Rechercher : "([!\?.\!\;,:;^13 ])(*)"
Remplacer par : "^s\1\2^s"


pour moi ça donne....
recherche: ""
remplacer par.. ?
0
Argitxu Messages postés 4831 Date d'inscription dimanche 22 juillet 2007 Statut Contributeur Dernière intervention 3 mars 2024 4 761 > TOT127 Messages postés 898 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 7 août 2018
Modifié par Argitxu le 27/02/2017 à 02:52
Si tes guillemets actuels sont des guillemets français " ", et que l’option des guillemets est bien activée, le recherche remplace du tuto marche parfaitement.

Par contre, j’ai peut-être lu trop vite et j’ai un doute sur le début de ton message quand tu donnes l'exemple “mot” où là ce sont des guillemets anglais
Voici une macro à rajouter par Alt F11 puis dans this document :

Sub RemplacerGuillemetsAnglaisV2()
'
' RemplacerGuillemetsAnglaisV2 Macro
'
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = ChrW(8221) & "<"
.Replacement.Text = """ "
.Forward = True
.Wrap = wdFindContinue
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = ChrW(8221)
.Replacement.Text = " """
.Forward = True
.Wrap = wdFindContinue
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub

Argitxu
0