Appeler les documents word

Bonjour à tous,

J'ai fait (avec l'aide de la communauté) un petit code pour ouvrir tous les docs word d'un dossier.

[/Dim k As Object
Set k = CreateObject("Word.Application")
k.Visible = True

fichier = Dir("C:\Users\Francois\Desktop\essai importation\Macro\*.doc") 'on defini le chemin d'accès des fichiers cibles et on le nomme "fichier"

Do While fichier <> "" 'la macro tourne tant qu'il reste des fichiers excel dans le dossier

k.Documents.Open ("C:\Users\Francois\Desktop\essai importation\Macro\" & fichier) 'ouverture de la premiere cible

Qui fonctionne bien.

Maintenant je veux ouvrir en parallèle un autre fichier word fixe. ce qui donne ceci

Sub remplacement()

Dim k As Object
Dim template As Object
Dim SOP As Object
Set k = CreateObject("Word.Application")
k.Visible = True

fichier = Dir("C:\Users\_pillef\Desktop\SOP\Critique\*.doc") 'on defini le chemin d'accès des fichiers cibles et on le nomme "fichier"

Do While fichier <> "" 'la macro tourne tant qu'il reste des fichiers excel dans le dossier

Set SOP = k.documents.Open("C:\Users\_pillef\Desktop\SOP\Critique\" & fichier) 'ouverture de la premiere cible que l'on appelle "SOP" dans la macro

Set template = k.documents.Open("C:\Users\_pillef\Desktop\SOP\template.docx") 'ouverture du fichier fixe "template" qui garde le même nom dans la macro. Ne fonctionne pas, excel plante à ce moment là

SOP.tables(2).cell(1, 4).Range.Copy ' je copie une case d'un tableau dans "SOP"

template.Bookmarks.Item("Owning_group").Range.PasteAndFormat wdFormatPlainText 'et je le colle dans "template" sur le signet "owning_group"

template.SaveAs Filename:="C:\Users\_pillef\Desktop\SOP\Critique\Template changé\" & SOP.Name ' Save as du fichier fixe dans un autre repertoire pour pouvoir le réutiliser
template.Close 'close the current source file
fichier = Dir 'go to next file in the directory
Loop 'restart the process with next file

Word.Application.Quit
Set WrdApp = Nothing

End Sub

Je ne comprends pas pourquoi tout plante quand j'essaye d'ouvrir le deuxième document word

Merci de vos lumières.

PS: j'aimerais aussi savoir comment changer le titre de mes paragraphes si quelqu'un connaît la commande

Bonjour,

juste une erreur de logique : le fichier fixe doit être ouvert une seule fois et donc avant la boucle !

Non, ca ne va pas marcher, désolé.

A chaque fois que j'ouvre un fichier "SOP" je dois ouvrir le fichier "template" le remplir avec des copier coller de "SOP" et l'enregistrer ailleurs sous un autre nom pour pouvoir le fermer et le rappeler non modifié pour le prochain "SOP"

Je fais cette macro pour réaliser un changement de template de 150 docs.

Dans ce cas, tout dépend précisément de " tout plante " forcément d'une clarté limpide menant vers la solution …

Par "tout plante", je veux dire que le débogeur ne fonctionne plus (plus de surlignage de ligne), je ne peux plus rien faire sur excel ou VBA. Obligé de passer par le gestionnaire de taches pour le fermer.

Et quand je ferme word il me sort une boite de dialogue pour me proposer d'ouvrir mon document template en read-only car l'édition est verrouillée par moi-même. :s

J'ai trouvé.

J'ai relancé mon ordi et amélioré la syntaxe qui n'était pas assez précise

Sub remplacement()

Dim wordapp As Object
Dim template As Object
Dim SOP As Object
Set wordapp = CreateObject("Word.Application")
wordapp.Visible = True

fichier = Dir("C:\Users\_pillef\Desktop\SOP\transfert\*.doc") 'on defini le chemin d'accès des fichiers cibles et on le nomme "fichier"

Do While fichier <> "" 'la macro tourne tant qu'il reste des fichiers excel dans le dossier

Set SOP = wordapp.Documents.Open("C:\Users\_pillef\Desktop\SOP\transfert\" & fichier) 'ouverture de la premiere cible

Set template = wordapp.Documents.Open("C:\Users\_pillef\Desktop\SOP\template.docx")

SOP.tables(2).cell(1, 4).Range.Copy

template.Bookmarks.Item("Owning_group").Range.PasteAndFormat wdFormatPlainText

template.SaveAs Filename:="C:\Users\_pillef\Desktop\SOP\transfert\Template changé\" & SOP.Name
template.Close 'close the current source file
SOP.Close
fichier = Dir 'go to next file in the directory
Loop 'restart the process with next file

Word.Application.Quit
Set WrdApp = Nothing

End Sub

Nouveau problème, je voudrais copier un document word de la page 3 à la dernière. Comment faire svp?

Ma difficulté, c'est juste la selection des pages.

Rechercher des sujets similaires à "appeler documents word"