Bonjour,
Je souhaiterai creer automatiquement des fichiers PDF qui porteraient le nom de chaque onglet de mon classeur.
Après avoir recherché sur le forum, j'ai fait une macro qui me créé un fichier PDF par onglet. Cependant, en visualisant chaque PDF je me rends compte qu'ils sont identiques au dernier onglet de mon classeur. Voici ma macro :
Dim NomPdf As String
Dim ws As Object
Dim pdfjob As PDFCreator.clsPDFCreator
Dim defaultprinter As String
Dim Pdfpath As String
For Each ws In Worksheets
'instancier un nouvel objet PDFCreator
Set pdfjob = New clsPDFCreator
NomPdf = ws.Name
Pdfpath = "R:\suivi des depenses\2010\JDD\PDF\CD"
'paramétrer l'objet PDFCreator
With pdfjob
If .cstart("/NoProcessingAtStartup") = False Then
MsgBox "Initialisation de PDFCreator impossible.", vbCritical + vbOKOnly, "PDFCreator"
Exit Sub
End If
.cOption("UseAutosave") = 1
.cOption("UseAutosaveDirectory") = 1
.cOption("AutosaveDirectory") = Pdfpath
.cOption("AutosaveFilename") = NomPdf
.cOption("AutosaveFormat") = 0 '0 =PDF
.cClearCache
End With
'imprime le document en PDF
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:="PDFCreator"
'attend que le document soit entré dans la file d'impression
Do Until pdfjob.cCountOfPrintjobs = 1
DoEvents
Loop
pdfjob.cPrinterStop = False
'attend que l'impression du document soit terminée
Do Until pdfjob.cCountOfPrintjobs = 0
DoEvents
Loop
Application.Wait Now + TimeValue("00:00:05")
pdfjob.cClose
Set pdfjob = Nothing
Next ws
suppProcPDFCreator
MsgBox ("Impression terminée")
Application.ActivePrinter = _
La boucle ne semble fonctionner que pour le changement de nom du fichier, le bouton de ma macro se trouve sur le dernier onglet.
Je vous remercie pour votre aide.
Je souhaiterai creer automatiquement des fichiers PDF qui porteraient le nom de chaque onglet de mon classeur.
Après avoir recherché sur le forum, j'ai fait une macro qui me créé un fichier PDF par onglet. Cependant, en visualisant chaque PDF je me rends compte qu'ils sont identiques au dernier onglet de mon classeur. Voici ma macro :
Dim NomPdf As String
Dim ws As Object
Dim pdfjob As PDFCreator.clsPDFCreator
Dim defaultprinter As String
Dim Pdfpath As String
For Each ws In Worksheets
'instancier un nouvel objet PDFCreator
Set pdfjob = New clsPDFCreator
NomPdf = ws.Name
Pdfpath = "R:\suivi des depenses\2010\JDD\PDF\CD"
'paramétrer l'objet PDFCreator
With pdfjob
If .cstart("/NoProcessingAtStartup") = False Then
MsgBox "Initialisation de PDFCreator impossible.", vbCritical + vbOKOnly, "PDFCreator"
Exit Sub
End If
.cOption("UseAutosave") = 1
.cOption("UseAutosaveDirectory") = 1
.cOption("AutosaveDirectory") = Pdfpath
.cOption("AutosaveFilename") = NomPdf
.cOption("AutosaveFormat") = 0 '0 =PDF
.cClearCache
End With
'imprime le document en PDF
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:="PDFCreator"
'attend que le document soit entré dans la file d'impression
Do Until pdfjob.cCountOfPrintjobs = 1
DoEvents
Loop
pdfjob.cPrinterStop = False
'attend que l'impression du document soit terminée
Do Until pdfjob.cCountOfPrintjobs = 0
DoEvents
Loop
Application.Wait Now + TimeValue("00:00:05")
pdfjob.cClose
Set pdfjob = Nothing
Next ws
suppProcPDFCreator
MsgBox ("Impression terminée")
Application.ActivePrinter = _
La boucle ne semble fonctionner que pour le changement de nom du fichier, le bouton de ma macro se trouve sur le dernier onglet.
Je vous remercie pour votre aide.