Salut à tous,
J'ai reussi à faire une macro pour imprimer en pdf mon fichier excel ! Mais je rencontre le problème suivant : l'impression s'effectue sur l'ensemble de mon classeur, soit 52000 pages pdf... Je souhaiterais que l'impression se limite à 2 onglets "statistik RDV" et "Statistik groupe par Commercial". Auriez vous une solution ? une piste ?
Je vous joins ma macro et vous remercie d'avance !
Sub PdfCreation()
Dim JobPDF As Object
Dim sNomPDF As String
Dim sCheminPDF As String
Dim file_date As String
Dim i As Integer
file_date = Format(Workbooks("Suivi Rdv Commerciaux VERSION TEST .xls").Sheets("Statistik RDV").Range("B1").Value, "yyyymmdd")
Dim file_name As String
For i = 0 To 1
If (i = 0) Then
sNomPDF = "Suivi des rendes vous commerciaux" & file_date & ".pdf" 'Nom du fichier PDF souhaité
sCheminPDF = "I:\users\Service Client\18_Meeting Equipes Commerciales\Rapport meeting" 'Chemin où enregistrer le fichier
End If
If (i = 1) Then
sNomPDF = "Suivi des rendez vous commerciaux.pdf" 'Nom du fichier PDF souhaité
sCheminPDF = "I:\service\OAM\SALESBOOK\6. TdB Service Client" 'Chemin où enregistrer le fichier
End If
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"
Exit Sub
End If
.cOption("UseAutosave") = 1
.cOption("UseAutosaveDirectory") = 1
.cOption("AutosaveDirectory") = sCheminPDF
.cOption("AutosaveFilename") = sNomPDF
' Menu permetant de choisir son format de sauvegarde:
' ### 0=PDF ###
' ### 1=PNG ###
' ### 2=JPG ###
' ### 3=BMP ###
' ### 4=PCX ###
' ### 5=TIF ###
' ### 6=PS ###
' ### 7=EPS ###
' ### 8=TXT ###
.cOption("AutosaveFormat") = 0
.cClearCache
End With
ActiveWorkbook.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
Next
End Sub
J'ai reussi à faire une macro pour imprimer en pdf mon fichier excel ! Mais je rencontre le problème suivant : l'impression s'effectue sur l'ensemble de mon classeur, soit 52000 pages pdf... Je souhaiterais que l'impression se limite à 2 onglets "statistik RDV" et "Statistik groupe par Commercial". Auriez vous une solution ? une piste ?
Je vous joins ma macro et vous remercie d'avance !
Sub PdfCreation()
Dim JobPDF As Object
Dim sNomPDF As String
Dim sCheminPDF As String
Dim file_date As String
Dim i As Integer
file_date = Format(Workbooks("Suivi Rdv Commerciaux VERSION TEST .xls").Sheets("Statistik RDV").Range("B1").Value, "yyyymmdd")
Dim file_name As String
For i = 0 To 1
If (i = 0) Then
sNomPDF = "Suivi des rendes vous commerciaux" & file_date & ".pdf" 'Nom du fichier PDF souhaité
sCheminPDF = "I:\users\Service Client\18_Meeting Equipes Commerciales\Rapport meeting" 'Chemin où enregistrer le fichier
End If
If (i = 1) Then
sNomPDF = "Suivi des rendez vous commerciaux.pdf" 'Nom du fichier PDF souhaité
sCheminPDF = "I:\service\OAM\SALESBOOK\6. TdB Service Client" 'Chemin où enregistrer le fichier
End If
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"
Exit Sub
End If
.cOption("UseAutosave") = 1
.cOption("UseAutosaveDirectory") = 1
.cOption("AutosaveDirectory") = sCheminPDF
.cOption("AutosaveFilename") = sNomPDF
' Menu permetant de choisir son format de sauvegarde:
' ### 0=PDF ###
' ### 1=PNG ###
' ### 2=JPG ###
' ### 3=BMP ###
' ### 4=PCX ###
' ### 5=TIF ###
' ### 6=PS ###
' ### 7=EPS ###
' ### 8=TXT ###
.cOption("AutosaveFormat") = 0
.cClearCache
End With
ActiveWorkbook.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
Next
End Sub