le VBScript suivant est incomplet :
Code : Tout sélectionner
Option Explicit
Dim dest,extension,fso,defimp,modeles,nom,path,rd,source,version,wo
Set fso=CreateObject("Scripting.FileSystemObject")
On Error Resume Next
path=WScript.CreateObject("WScript.shell").RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\Winword.exe\Path")&"winword.exe"
If Err=0 Then
path=Replace(path,"\","\\")
For Each dest in GetObject("winmgmts:").ExecQuery("Select * from CIM_Datafile Where Name = '"&path&"'")
dest=dest.Version
path=Left(dest,InStr(dest,".")-1)
Next
Else
WScript.Echo """Winword"" n'a pas été trouvé !":WScript.Quit
End If
On Error GoTo 0
extension=".doc"
If path>=12 Then extension=extension&"x"
path=fso.GetFile(WScript.ScriptFullName).ParentFolder'répertoire "VBScripts"
path=Left(path,InStrRev(path,"\"))'répertoire parent de "VBScripts" teminé par "\"
dest=path&"Sorties\"
source=dest&"word.csv"
If fso.FileExists(source) Then
nom="AppelCotisationParticuliers"
Set wo=CreateObject("Word.Application")
wo.Visible=False
defimp=wo.ActivePrinter
Set rd=wo.Documents.Open(path&"Modèles\ModèleCotisGéné"&extension)
rd.MailMerge.OpenDataSource source
rd.MailMerge.Execute False'OK même si modèle vierge de toute fusion
rd.Close False
wo.ActiveDocument.SaveAs dest&nom&extension'OK
'Imprimer en PDF
wo.ActivePrinter="Microsoft Print to PDF"
'comment donner le nom path&"Sorties\AppelCotisGéné.pdf" et provoquer l'impression ?
wo.Quit
' fso.DeleteFile source,True
End If
Nota : je condense mes codes car il me paraît peu futé de déclarer, initialiser une variable pour ne s'en servir qu'une fois !
Merci et à bientôt