Comment rechercher et remplacer du texte dans un document Word à partir d'Excel ?
Dans un document Word, nous pouvons appliquer la fonction Rechercher et remplacer pour rechercher et remplacer rapidement un texte. Mais, s'il y a plusieurs textes à trouver et à remplacer, entrer le texte un par un dans la fonction Rechercher et remplacer prendra du temps. Dans ce cas, vous pouvez entrer les textes de recherche et de remplacement dans la liste des cellules, et à l'aide du code VBA dans Excel pour accomplir ce travail facilement. Dans cet article, je présenterai également une fonctionnalité utile pour rechercher et remplacer par lots des textes dans plusieurs documents Word.
Rechercher et remplacer plusieurs textes dans un document Word à partir d'Excel avec le code VBA
Rechercher et remplacer plusieurs textes dans un document Word à partir d'Excel avec le code VBA
Si vous souhaitez rechercher et remplacer certains textes dans un seul fichier Word, le code VBA suivant peut vous rendre service.
1. Dans la feuille de calcul Excel, créez une colonne contenant les textes que vous souhaitez rechercher et remplacer, et une autre colonne avec des textes à remplacer, comme illustré ci-dessous. Et puis appuyez sur Alt + F11 touches simultanément pour ouvrir le Microsoft Visual Basic pour applications fenêtre.
2. Puis clique insérer > Module, copiez et collez le code VBA ci-dessous dans la fenêtre.
Code VBA : rechercher et remplacer plusieurs textes dans un seul fichier Word
Sub replace_texts_range_of_cells()
'Updateby ExtendOffice
Dim xWordApp As Word.Application
Dim xDoc As Word.Document
Dim xRng As Range
Dim I As Integer
Dim xFileDlg As FileDialog
On Error GoTo ExitSub
Set xFileDlg = Application.FileDialog(msoFileDialogFilePicker)
xFileDlg.AllowMultiSelect = False
xFileDlg.Filters.Add "Word Document", "*.docx; *.doc; *.docm"
xFileDlg.FilterIndex = 2
If xFileDlg.Show <> -1 Then GoTo ExitSub
Set xRng = Application.InputBox("Please select the lists of find and replace texts (Press Ctrl key to select two same size ranges):", "Kutools for Excel", , , , , , 8)
If xRng.Areas.Count <> 2 Then
MsgBox "Please select two columns (press Ctrl key), the two ranges have the same size.", vbInformation + vbOKOnly, "Kutools for Excel"
GoTo ExitSub
End If
If (xRng.Areas.Item(1).Rows.Count <> xRng.Areas.Item(2).Rows.Count) Or _
(xRng.Areas.Item(1).Columns.Count <> xRng.Areas.Item(2).Columns.Count) Then
MsgBox "Please select two columns (press Ctrl key), the two ranges have the same size.", vbInformation + vbOKOnly, "Kutools for Excel"
GoTo ExitSub
End If
Set xWordApp = CreateObject("Word.application")
xWordApp.Visible = True
Set xDoc = xWordApp.Documents.Open(xFileDlg.SelectedItems.Item(1))
For I = 1 To xRng.Areas.Item(1).Cells.Count
With xDoc.Application.Selection.Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = xRng.Areas.Item(1).Cells.Item(I).Value
.Replacement.Text = xRng.Areas.Item(2).Cells.Item(I).Value
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
xDoc.Application.Selection.Find.Execute Replace:=wdReplaceAll
Next
ExitSub:
Set xRng = Nothing
Set xFileDlg = Nothing
Set xWordApp = Nothing
Set xDoc = Nothing
End Sub
3. Après avoir collé le code, toujours dans le Microsoft Visual Basic pour applications fenêtre, cliquez sur Outils > Bibliographie, voir capture d'écran:
4. Dans le popped-out Références - VBAProject boîte de dialogue, sélectionnez le Bibliothèque d'objets Microsoft Word 16.0 dans la zone de liste, voir capture d'écran :
5Cliquez sur OK bouton pour fermer la boîte de dialogue, et maintenant, appuyez sur F5 clé pour exécuter ce code, dans la fenêtre de navigation contextuelle, sélectionnez le fichier Word dont vous souhaitez remplacer les textes, voir capture d'écran :
6. Puis clique OK, dans la boîte de dialogue suivante, appuyez sur Ctrl pour sélectionner séparément le texte d'origine et les nouvelles cellules de texte que vous souhaitez utiliser, voir capture d'écran :
7. Et puis, cliquez OK , maintenant, les textes sont trouvés et remplacés par les nouveaux textes dans votre document spécifié, et le fichier s'ouvre également, vous devez l'enregistrer pour conserver les modifications.
Rechercher et remplacer plusieurs textes dans plusieurs documents Word à partir d'Excel avec le code VBA
Ici, je crée également un code VBA pour rechercher et remplacer plusieurs textes dans plusieurs documents Word, veuillez procéder comme suit :
1. Ouvrez le fichier Excel qui contient deux colonnes de valeurs à remplacer et à remplacer par comme illustré ci-dessous, puis appuyez sur Alt + F11 touches simultanément pour ouvrir le Microsoft Visual Basic pour applications fenêtre.
2. Puis clique insérer > Module, copiez et collez le code VBA ci-dessous dans la fenêtre.
Code VBA : rechercher et remplacer plusieurs textes dans plusieurs fichiers Word
Sub FindReplaceAcrossMultipleWordDocuments()
'Updateby ExtendOffice
Dim xWordApp As Word.Application
Dim xDoc As Word.Document
Dim xRng As Range
Dim I As Integer
Dim xFolderDlg As FileDialog
Dim xFSO As Scripting.FileSystemObject
Dim xFile As File
On Error GoTo ExitSub
Set xFolderDlg = Application.FileDialog(msoFileDialogFolderPicker)
If xFolderDlg.Show <> -1 Then GoTo ExitSub
Set xRng = Application.InputBox("Please select the lists of find and replace texts (Press Ctrl key to select two same size ranges", "Kutools for Excel", , , , , , 8)
If xRng.Areas.Count <> 2 Then
MsgBox "Please select two columns (press Ctrl key), the two ranges have the same size", vbInformation + vbOKOnly, "Kutools for Excel"
GoTo ExitSub
End If
If (xRng.Areas.Item(1).Rows.Count <> xRng.Areas.Item(2).Rows.Count) Or _
(xRng.Areas.Item(1).Columns.Count <> xRng.Areas.Item(2).Columns.Count) Then
MsgBox "Please select two columns (press Ctrl key), the two ranges have the same size.", vbInformation + vbOKOnly, "Kutools for Excel"
GoTo ExitSub
End If
Set xFSO = New Scripting.FileSystemObject
Set xWordApp = CreateObject("Word.application")
xWordApp.Visible = True
For Each xFile In xFSO.GetFolder(xFolderDlg.SelectedItems(1)).Files
If VBA.InStr(xFile.Type, "Microsoft Word") > 0 Then
Set xDoc = xWordApp.Documents.Open(xFile.Path)
For I = 1 To xRng.Areas.Item(1).Cells.Count
With xDoc.Application.Selection.Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = xRng.Areas.Item(1).Cells.Item(I).Value
.Replacement.Text = xRng.Areas.Item(2).Cells.Item(I).Value
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
xDoc.Application.Selection.Find.Execute Replace:=wdReplaceAll
Next
xDoc.Close wdSaveChanges
End If
Next
xWordApp.Quit
MsgBox "The Find and Replace has been completed", vbInformation + vbOKOnly, "Kutools for Excel"
ExitSub:
Set xRng = Nothing
Set xFolderDlg = Nothing
Set xWordApp = Nothing
Set xDoc = Nothing
End Sub
3. Toujours dans le Microsoft Visual Basic pour applications fenêtre, cliquez sur Outils > Bibliographie, Dans le Références - VBAProject boîte de dialogue, sélectionnez le Bibliothèque d'objets Microsoft Word 16.0 et Exécution de scripts Microsoft options de la zone de liste, voir capture d'écran :
4. Après avoir vérifié les deux options, et cliquez sur OK pour fermer la boîte de dialogue, puis continuez à appuyer sur la F5 clé pour exécuter ce code, dans l'ouverture Explorer fenêtre, choisissez un dossier contenant les documents Word que vous souhaitez effectuer la recherche et le remplacement, voir capture d'écran :
5Cliquez sur OK bouton, dans la boîte de dialogue qui apparaît, appuyez sur Ctrl pour sélectionner séparément le texte d'origine et les nouvelles colonnes de texte que vous souhaitez utiliser, voir capture d'écran :
6. Enfin, cliquez OK, et les textes originaux sont remplacés par les nouveaux dans ces fichiers, après avoir terminé, une boîte de dialogue apparaîtra comme illustré ci-dessous :
7Cliquez sur OK pour fermer la boîte de dialogue. Et vous pouvez accéder aux fichiers pour vérifier les résultats convertis.
Trouvez et remplacez plusieurs textes dans plusieurs documents Word avec une fonctionnalité puissante
Dans cette section, je vais parler de la façon de rechercher et de remplacer par lots des textes dans plusieurs documents Word à partir de Word au lieu d'Excel. Avec un outil puissant-Kutools for Word, vous pouvez rapidement trouver et remplacer les textes spécifiques et les remplacer par de nouveaux textes dans le fichier principal, l'en-tête, le pied de page, les commentaires, etc. et mettre en surbrillance les résultats selon vos besoins.
1. Ouvrez un fichier Word, puis cliquez sur Kutools Plus > Rechercher et remplacer par lots, voir capture d'écran:
2. Dans le ouvert Rechercher et remplacer par lots boîte de dialogue, veuillez effectuer les opérations suivantes:
- Cliquez Ajouter bouton pour ajouter les fichiers Word où vous souhaitez rechercher et remplacer des textes ;
- Dans le volet de gauche, cliquez sur Ajouter une rangée du ruban supérieur;
- Dans le champ inséré, entrez le texte d'origine et le nouveau texte dans le Trouvez et remplacer colonnes séparément que vous souhaitez rechercher et remplacer. De plus, vous pouvez spécifier une couleur pour mettre en surbrillance les textes remplacés selon vos besoins.
3. Après avoir créé les critères de recherche, cliquez sur remplacer bouton pour aller à la Résultat de la prévisualisation pour afficher les résultats de la recherche et du remplacement. Voir capture d'écran :
4. Puis clique Fermer bouton, et une boîte de dialogue apparaît pour vous rappeler si vous souhaitez enregistrer ce scénario, cliquez sur Oui pour l'enregistrer, et cliquez sur Non pour l'ignorer, voir capture d'écran:
- Rechercher et remplacer des caractères spéciaux dans plusieurs documents Word ;
- Recherchez et remplacez plusieurs chaînes par une mise en forme spécifique dans plusieurs documents Word ;
- Recherchez et remplacez plusieurs chaînes dans plusieurs fichiers txt/htm/html.
Cliquez pour obtenir des informations plus détaillées sur cette fonctionnalité…
Meilleurs outils de productivité bureautique
Améliorez vos compétences Excel avec Kutools for Excel et faites l'expérience d'une efficacité comme jamais auparavant. Kutools for Excel offre plus de 300 fonctionnalités avancées pour augmenter la productivité et gagner du temps. Cliquez ici pour obtenir la fonctionnalité dont vous avez le plus besoin...
Office Tab apporte une interface à onglets à Office et facilite grandement votre travail
- Activer l'édition et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
- Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
- Augmente votre productivité de 50% et réduit des centaines de clics de souris chaque jour!