Rechercher-remplacer sur Word avec une liste Excel.

Universus Messages postés 4 Statut Membre -  
m@rina Messages postés 26226 Statut Contributeur -
Bonjour,
Je cherche à rechercher sur un document Word, les valeurs de chaque rangée dans la colonne A d'un fichier Excel, et remplacer les occurrences par leur valeur correspondante de la colonne B.
(Liste de + de 1000 rangées).

Précision (le but est de corriger / reformatter le document Word).

Comment faire?

Exemple :


Configuration: Macintosh / Chrome 101.0.4951.64
A voir également:

3 réponses

Raymond PENTIER Messages postés 71821 Statut Contributeur 17 376
 
Bonjour.

Cette gymnastique n'est pas possible (sauf peut-être avec une macro, mais j'en doute).
Recherche à faire entièrement dans des documents Word ou dans des classeurs Excel, et recopier les résultats obtenus.
0
m@rina Messages postés 26226 Statut Contributeur 11 480
 
Bonjour

C'est possible, avec une macro. Mais ce sera beaucoup plus simple de faire un copier coller du tableau en question dans un doc Word.

Supposant que le document Word qui contient le tableau se nomme tablo.docx, voici une macro qui va faire les modifs dans le document actif.

ATTENTION ! la macro que je propose est faite pour Windows, pas pour Mac, et l'on sait que les macros sur Mac ne sont pas vraiment compatibles.
Donc mieux vaut quand même faire un test avant :

Sub universus()

'macro écrite par m@rina
Dim tablo, i
Dim cellule1 As Cell, cellule2 As Cell
Dim texte1 As Range, texte2 As Range

tablo = Documents("tablo.docx").Tables(1)
For i = 1 To tablo.Rows.Count
Set cellule1 = tablo.Tables(1).Cell(Row:=i, Column:=1)
Set texte1 = cellule1.Range
texte1.MoveEnd unit:=wdCharacter, Count:=-1

Set cellule2 = tablo.Tables(1).Cell(Row:=i, Column:=2)
Set texte2 = cellule2.Range
texte2.MoveEnd unit:=wdCharacter, Count:=-1

Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
Set myrange = ActiveDocument.Content
With myrange.Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = texte1
.Replacement.Text = texte2
.Execute Replace:=wdReplaceAll ' peut être la raison
End With

Next i
End Sub


m@rina
0
Universus Messages postés 4 Statut Membre
 
Merci beaucoup M@rina pour cette macro!
J'ai en effet un mac, mais ça tombe bien, c'est pour utiliser sur une VM Windows!

Je vais la tester à l'instant et je te reviens !
0
Universus Messages postés 4 Statut Membre
 
uhm...
Le débogueur me surligne la ligne
tablo = Documents("tablo.docx").Tables(1)

J'imagine que j'ai fait une erreur avec le document Word du tableau ?

voici de quoi il a l'air :


et juste pour rire, voici le texte qui allait être corrigé!
1!
Je suis 2 que : 3
C’est un test


(je testais en même temps si ça prendrait en considération les espaces " " et la commande de saut de ligne "\n")
0
m@rina Messages postés 26226 Statut Contributeur 11 480
 
Bonjour,

Cette ligne parle du premier tableau du document tablo.dotx qui doit être ouvert. Donc vérifier qu'il s'agit bien du premier tableau.
Important : la macro doit être lancée depuis le document à modifier qui doit, bien sûr, être ouvert également.

m@rina
0