Convertir un .xls en .pdf sans intervention
Bonjour,
Cela fait plusieurs heures que je cherche en vain une réponse à ma question alors je me décide à poster içi.
Je travaille en entreprise et nous avons une application métier qui génère des fichiers .xls tous les matins.
Mon objectif est de convertir certains de ces fichiers en .pdf automatiquement (sans aucune intervention de ma part car le traitement aura lieu très tôt le matin).
J'ai PDFCreator et CutePDF mais je pense que PDFCreator répond mieux au besoin d'automatisation que je rencontre.
J'ai récupéré un code sur Internet qui permet de faire ça mais uniquement si le fichier .xls est ouvert et que le focus est sur la feuille que l'on veut imprimer.
J'ai donc essayé d'adapter ce code pour qu'il aille chercher les fichiers .xls dans un dossier et qu'ils les impriment en .pdf tout seul comme un grand mais je n'ai abouti à rien.
Pourriez-vous m'aider svp ?
Merci d'avance pour vos réponses ;)
Voici le code que j'ai récupéré :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| sNomPDF = "Essai.pdf"
sNomXLS = "Test.xls"
sCheminPDF = "c:\"
'If IsEmpty(ActiveSheet.UsedRange) Then Exit Sub
Set jobPDF = CreateObject("PDFCreator.clsPDFCreator")
With jobPDF
If .cStart("/NoProcessingAtStartup") = False Then
MsgBox "Initialisation de PDFCreator impossible", vbCritical + vbOKOnly, "PDFCreator"
End If
.cOption("UseAutosave") = 1
.cOption("UseAutosaveDirectory") = 1
.cOption("AutosaveDirectory") = sCheminPDF
.cOption("AutosaveFilename") = sNomPDF
'0=PDF, 1=Png, 2=jpg, 3=bmp, 4=pcx, 5=tif, 6=ps, 7=eps, 8=txt
.cOption("AutosaveFormat") = 0
.cClearCache
End With
ActiveWindow.SelectedSheets.PrintOut copies:=1, ActivePrinter:="PDFCreator"
'Fichier dans la file d'attente
Do Until jobPDF.cCountOfPrintjobs = 1
DoEvents
Loop
jobPDF.cPrinterStop = False
'Attendre que la file d'attente soit vide
Do Until jobPDF.cCountOfPrintjobs = 0
DoEvents
Loop
jobPDF.cClose
Set jobPDF = Nothing |