Ouvrir les fichiers word d'un dossier
Bonjour à tous,
Tout est dans le titre, je veux ouvrir les 150 fichiers word d'un répertoire pour y changer deux mots.
Voilà le code
Sub remplacement()
Set wbdest = ActiveWorkbook
Dim k As Object
Set k = CreateObject("Word.Application")
k.Visible = True
fichier = Dir("C:\Users\Francois\Desktop\essai importation\Macro\*.doc")
Do While fichier <> ""
k.Documents.Open ("C:\Users\Francois\Desktop\essai importation\Macro\*.doc") ERREUR
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "Blabla"
.Replacement.Text = "Blibli"
.Forward = True
.Wrap = wdFindContinue
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "Atchoum"
.Replacement.Text = "A tes souhaits"
.Forward = True
.Wrap = wdFindContinue
End With
Selection.Find.Execute Replace:=wdReplaceAll
ActiveDocument.Save
wbsource.Close 'close the current source file
fichier = Dir 'go to next file in the directory
Loop 'restart the process with next file
wbdest.Activate
End Sub
Ça bloque à la ligne ou il y a marqué ERREUR avec un message "Erreur 5151. le fichier peut être corrompu"
Or, quand j'ouvre le dit fichier manuellement, aucun soucis.
Quelqu'un voit il mon erreur, ou un moyen détournée d'arriver au même résultat?
Bonjour,
quel intérêt de passer par Excel, pourquoi ne pas procéder directement depuis Word ?‼
Quant à l'erreur, seul un fichier existant correctement renseigné peut être ouvert car *.doc n'en est pas un !
Donc avec un tant soit peu de jugeote, à quoi peut bien servir la variable fichier si ce n'est justement pour en ouvrir un ?!
Tout bêtement parce que je viens de découvrir qu'on pouvait faire des macros sur word et que je ne suis pas à l'aise là dessus du tout, alors que je bidouille du VBA Excel depuis 6 mois.
TU viens de m'apprendre à qui servait cette variable fichier, je ne comprenais pas d'où elle venait (le code est péché d'un autre forum). C'est la première fois que je tente ce genre de manip.
En tout cas, merci.
Pour ceux que ca interesse voilà un code qui marche.
Sub remplacement()
Dim k As Object
Set k = CreateObject("Word.Application")
k.Visible = True
fichier = Dir("C:\Users\Francois\Desktop\essai importation\Macro\*.doc")
Do While fichier <> ""
k.Documents.Open ("C:\Users\Francois\Desktop\essai importation\Macro\" & fichier)
Set myrange = ActiveDocument.Content
With myrange.Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = "Test"
.Replacement.Text = "Résultat"
.Replacement.Highlight = True
.Execute Replace:=wdReplaceAll '
End With
ActiveDocument.SaveAs Filename:="C:\Users\Francois\Desktop\essai importation\Macro\copies\" & ActiveDocument.Name
ActiveDocument.Close
fichier = Dir
Loop
Word.Application.Quit
Set WrdApp = Nothing
End Sub
J'ai encore le problème de l'erreur 462 mais ce n'est pas très grave vu que cette macro n'est censée tourner qu'une fois