Modification de code vb : rechercher/remplacer sur tous les doc word à partir d'excel

Imperium

XLDnaute Junior
Bonjour à tous,

J'ai besoin de votre aide sur un code en particulier que quelqu'un ma gentillement réalisé.
Ce code a pour effet de prendre un mot dans une cellule (B2) puis de faire un rechercher/remplacer de ce mot sur un document word deja ouvert (et donc le nom serait indiqué en D2).

Sauf que j'aimerai aujourd'hui que ce rechercher/remplacer ait lieu sur tous les documents word déjà ouverts (et peu importe leur nom).

Est-ce possible en modifiant ce code ? Et si oui comment ?

Merci énormément !!


Sub CopRemp()
Dim Mot As String, Doc As String, AppWord As Object, DocWord As Object
Mot = Range("B2").Value
Doc = Range("D2").Value
On Error GoTo Err1
Set AppWord = GetObject(, "Word.Application")
Set DocWord = AppWord.Documents(Doc)
DocWord.Activate
With AppWord.Selection
.WholeStory
.Find.ClearFormatting
.Find.Replacement.ClearFormatting
With .Find
.Text = "xxx"
.Replacement.Text = Mot
.Forward = True
.Wrap = 2
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
AppWord.DisplayAlerts = 0
.Find.Execute Replace:=2
AppWord.DisplayAlerts = -1
End With
On Error GoTo 0
Exit Sub
Err1:
MsgBox "Erreur"
End Sub
 

tototiti2008

XLDnaute Barbatruc
Re : Modification de code vb : rechercher/remplacer sur tous les doc word à partir d'

Bonjour Imperium,

à tester

Code:
Sub CopRemp()
Dim Mot As String, Doc As String, AppWord As Object, DocWord As Object
Mot = Range("B2").Value
On Error GoTo Err1
Set AppWord = GetObject(, "Word.Application")
For each DocWord in AppWord.Documents
DocWord.Activate
With AppWord.Selection
.WholeStory
.Find.ClearFormatting
.Find.Replacement.ClearFormatting
With .Find
.Text = "xxx"
.Replacement.Text = Mot
.Forward = True
.Wrap = 2
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
AppWord.DisplayAlerts = 0
.Find.Execute Replace:=2
AppWord.DisplayAlerts = -1
End With
Next
On Error GoTo 0
Exit Sub
Err1:
MsgBox "Erreur"
End Sub
 

Imperium

XLDnaute Junior
Re : Modification de code vb : rechercher/remplacer sur tous les doc word à partir d'

Désolé pour le multipost, mais je viens de détecter le problème (sans pour autant pouvoir le corriger).

En fait, la macro ne fonctionne pas sur un document word déjà généré par une macro via excel et ce code :

Sub Excel_Word()

Dim oWdApp As Object 'Word.Application
Dim oWdDoc As Object 'Word.Document

'Lancer une instance Word
Set oWdApp = CreateObject("Word.Application")

'Ouvrir un nouveau document
Set oWdDoc = oWdApp.Documents.Open("F:\CONTRAT\" & [I4] & ".doc")

'Rendre Word visible
oWdApp.Visible = True

End Sub

Existe-t-il une solution ?

Merci !!
 

Statistiques des forums

Discussions
311 723
Messages
2 081 932
Membres
101 844
dernier inscrit
pktla