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 : Sélectionner tout - Visualiser dans une fenêtre à part
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
Partager