Ouvrir plusieurs docs avec vbscript

Résolu
Fosfora Messages postés 8 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 23 février 2005 - 10 janv. 2005 à 14:53
Fosfora Messages postés 8 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 23 février 2005 - 11 janv. 2005 à 13:32
Bonjour,

voilà j'ai besoin de créer une macro sous word qui ouvrirait tous les *.doc d'un répertoire et les convertirait en PDF.
J'ai fait une macro mais je ne sais pas lui dire d'ouvrir tous les fichiers du répertoire donc je l'ai fait pour 2 fichiers. Voici le code :

ChangeFileOpenDirectory "D:\Data\MAPC-PDF"
Documents.Open FileName:="""bulletin MAPC13413-M2806.doc""", _
ConfirmConversions:=False, ReadOnly:=False, AddToRecentFiles:=False, _
PasswordDocument:="", PasswordTemplate:="", Revert:=False, _
WritePasswordDocument:="", WritePasswordTemplate:="", Format:= _
wdOpenFormatAuto
ActivePrinter = "Adobe PDF"
Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _
wdPrintDocumentContent, Copies:=1, Pages:="", PageType:=wdPrintAllPages, _
Collate:=True, Background:=True, PrintToFile:=False, PrintZoomColumn:=0, _
PrintZoomRow:=0, PrintZoomPaperWidth:=0, PrintZoomPaperHeight:=0
ActiveDocument.Close
Documents.Open FileName:="""bulletin Mapc14200.doc""", ConfirmConversions _
:=False, ReadOnly:=False, AddToRecentFiles:=False, PasswordDocument:="", _
PasswordTemplate:="", Revert:=False, WritePasswordDocument:="", _
WritePasswordTemplate:="", Format:=wdOpenFormatAuto
Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _
wdPrintDocumentContent, Copies:=1, Pages:="", PageType:=wdPrintAllPages, _
Collate:=True, Background:=True, PrintToFile:=False, PrintZoomColumn:=0, _
PrintZoomRow:=0, PrintZoomPaperWidth:=0, PrintZoomPaperHeight:=0
ActiveDocument.Close
End Sub

si quelqu'un peut me dire comment faire (boucle ou autre...), merci d'avance
Laure

7 réponses

jef_b Messages postés 28 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 2 juin 2005
10 janv. 2005 à 16:39
Hello !



Ca devrait pouvoir t'aider !



Tout d'abord, ajoute comme référence (menu outils - références) la bibliothèque Microsoft Scripting Runtime.

Ensuite test ce petit bout de code...

Je te laisse faire le reste !



Dim fso as new FileSystemObject

Dim fichier As File

' récupération des fichiers contenus dans le répertoire c:\

For Each fichier In fso.GetFolder("c:").Files

' affichage du type de fichier (on peut aussi imaginer faire un test sur l'extension directement)

' peut etre un peu plus propre... A toi de voir !

debug.print fichier.Type

Next


Voilà, si tu as besoin de plus d'infos, n'hésite pas !


Jef
3
jef_b Messages postés 28 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 2 juin 2005
10 janv. 2005 à 17:13
Re !!



Bien sur !!!


' tu te positionnes dans le bon répertoire



String monRepertoire = "D:\Data\MAPC-PDF" ' petite variable pour ne pas retaper inutilement les memes choses !


ChangeFileOpenDirectory monRepertoire




Dim fso As New FileSystemObject

Dim fichier As File

' récupération des fichiers contenus dans le répertoire monRepertoire

For Each fichier In fso.GetFolder(monRepertoire).Files

If InStr(1, fichier.Name, ".doc", vbTextCompare) <> 0 Then

' si le fichier posséde l'extension .doc



' on fait ton petit traitement

Documents.Open FileName:=fichier.Name, _


ConfirmConversions:=False, ReadOnly:=False, AddToRecentFiles:=False, _

PasswordDocument:="", PasswordTemplate:="", Revert:=False, _


WritePasswordDocument:="", WritePasswordTemplate:="", Format:= _

wdOpenFormatAuto

ActivePrinter = "Adobe PDF"

Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _


wdPrintDocumentContent, Copies:=1, Pages:="",
PageType:=wdPrintAllPages, _


Collate:=True, Background:=True, PrintToFile:=False,
PrintZoomColumn:=0, _


PrintZoomRow:=0, PrintZoomPaperWidth:=0, PrintZoomPaperHeight:=0



ActiveDocument.Close

End If

Next




set fso = nothing




Voila, je pense que ça devrait aller !!!



Bon courage !
Jef
3
jef_b Messages postés 28 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 2 juin 2005
11 janv. 2005 à 13:27
là tu aurais pu trouver quand même !!!

Lors que tu fermes le fichier, tu indiques que tu veux le fermer sans enregistrer les modifs.

On obtient donc :



ActiveDocument.close SaveChanges:=wdDoNotSaveChanges



où wdDoNotSaveChanges est la constante indiquant qu'on ne veut pas enregistrer les modifications apportées !



Bon courage pour la suite,

Et pour l'aide ; y'a pas de quoi !!!
Jef
3
Fosfora Messages postés 8 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 23 février 2005
10 janv. 2005 à 16:44
merci beaucoup !

mais comme je suis vraiment une "bille" en programmation (c'est pas du tout mon job!), peux-tu me dire où je dois mettre ce petit bout de code...???

merci
Laure
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Fosfora Messages postés 8 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 23 février 2005
11 janv. 2005 à 08:51
je te remercie beaucoup...

je vais tester tout ça...

Laure
0
Fosfora Messages postés 8 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 23 février 2005
11 janv. 2005 à 11:10
youpi ça marche !!!!

je te remercie beaucoup pour ton aide...

j'aurai encore une question en fait : sur certains documents word, il demande "voulez-vous enregister les modifs apportées?" lorsqu'on les ferme ? y a t'il moyen de lui définir "non" par défaut dans le code ?

merci
Laure
0
Fosfora Messages postés 8 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 23 février 2005
11 janv. 2005 à 13:32
super !
tout fonctionne je suis super contente !!!

et encore merci, merci et merci

Laure
0
Rejoignez-nous