salut,
je travaille sur un nouveau projet.
j'ai un répertoire avec 3 fichiers excel
et je veux transformer :l'onglet 1 en 1 fichier pdf et l'onglet 2 en un autre fichier pdf
Soit 2 pdf pour un fichier excel.
j'ai utilisé ce code mais pour le moment il transforme en pdf mon fichier qui a la Macro et il fait un pdf à 3238 pages!
donc je n'arrive pas encore à le faire chercher le bon fichier excel et ne prendre que 2 onglets.
c'est assez complewe et je n'ai rien trouvé sur google!😱
Tatiana
Dim Fichier As String, Chemin As String
Dim Wb As Workbook
Dim val As Integer
'---lister les fichiers du répertoire ---
Chemin = "O:\Commun - Encadrement\Contrôle interne\Prélèvement décret\Ajustements Octobre\rep test1"
Chemin2 = "O:\Commun - Encadrement\Contrôle interne\Prélèvement décret\Ajustements Octobre\rep test2\"
Fichier = Dir(Chemin & "\*.xls")
Do
'ouverture de chaque classeur
Set Wb = Workbooks.Open(Chemin & "\" & Fichier)
Wb.Activate
'Code qui transforme le fichier en pdf
Set pdfjob = CreateObject("PDFCreator.clsPDFCreator")
NomExcel = ThisWorkbook.Name
NomPdf = Left(NomExcel, Len(NomExcel) - 4) & ".pdf"
With pdfjob
If .cstart("/NoProcessingAtStartup") = False Then
MsgBox "Can't initialize PDFCreator.", vbCritical + vbOKOnly, "PrtPDFCreator"
Exit Sub
End If
.cOption("UseAutosave") = 1
.cOption("UseAutisaveDirectory") = 1
.cOption("AutosaveDirectory") = ActiveWorkbook.Path
.cOption("AutosaveFilename") = NomPdf
.cOption("AutosaveFormat") = 0
.cClearCache
End With
ThisWorkbook.PrintOut copies:=1, ActivePrinter:="PDFCreator"
Do Until pdfjob.cCountOfPrintjobs = 1
DoEvents
Loop
pdfjob.cPrinterStop = False
Do Until pdfjob.cCountOfPrintjobs = 0
DoEvents
Loop
With pdfjob
.cDefaultprinter = DefaultPrinter
.cClearCache
.cClose
End With
Set pdfjob = Nothing
Wb.Close True
Fichier = Dir
Loop Until Fichier = ""
End Sub
je travaille sur un nouveau projet.
j'ai un répertoire avec 3 fichiers excel
et je veux transformer :l'onglet 1 en 1 fichier pdf et l'onglet 2 en un autre fichier pdf
Soit 2 pdf pour un fichier excel.
j'ai utilisé ce code mais pour le moment il transforme en pdf mon fichier qui a la Macro et il fait un pdf à 3238 pages!
donc je n'arrive pas encore à le faire chercher le bon fichier excel et ne prendre que 2 onglets.
c'est assez complewe et je n'ai rien trouvé sur google!😱
Tatiana
Dim Fichier As String, Chemin As String
Dim Wb As Workbook
Dim val As Integer
'---lister les fichiers du répertoire ---
Chemin = "O:\Commun - Encadrement\Contrôle interne\Prélèvement décret\Ajustements Octobre\rep test1"
Chemin2 = "O:\Commun - Encadrement\Contrôle interne\Prélèvement décret\Ajustements Octobre\rep test2\"
Fichier = Dir(Chemin & "\*.xls")
Do
'ouverture de chaque classeur
Set Wb = Workbooks.Open(Chemin & "\" & Fichier)
Wb.Activate
'Code qui transforme le fichier en pdf
Set pdfjob = CreateObject("PDFCreator.clsPDFCreator")
NomExcel = ThisWorkbook.Name
NomPdf = Left(NomExcel, Len(NomExcel) - 4) & ".pdf"
With pdfjob
If .cstart("/NoProcessingAtStartup") = False Then
MsgBox "Can't initialize PDFCreator.", vbCritical + vbOKOnly, "PrtPDFCreator"
Exit Sub
End If
.cOption("UseAutosave") = 1
.cOption("UseAutisaveDirectory") = 1
.cOption("AutosaveDirectory") = ActiveWorkbook.Path
.cOption("AutosaveFilename") = NomPdf
.cOption("AutosaveFormat") = 0
.cClearCache
End With
ThisWorkbook.PrintOut copies:=1, ActivePrinter:="PDFCreator"
Do Until pdfjob.cCountOfPrintjobs = 1
DoEvents
Loop
pdfjob.cPrinterStop = False
Do Until pdfjob.cCountOfPrintjobs = 0
DoEvents
Loop
With pdfjob
.cDefaultprinter = DefaultPrinter
.cClearCache
.cClose
End With
Set pdfjob = Nothing
Wb.Close True
Fichier = Dir
Loop Until Fichier = ""
End Sub