Bonjour,
Je sais enregistrer un pdf simplement avec le "code 1".
Cependant je souhaite maintenant faire une incrémentation si le pdf existe déjà dans le dossier (je ne veux pas l'ecraser !)
Je souhaite utiliser le "code 2" mais j'ai une erreur 429 qui me dit un composant activeX ne peut pas créer d'objet..
La ligne pointé est surlignée... je ne suis pas assez balaise en VBA pour trouver
Help please.
D'avance, merci.
Sub EnregistrerBL2222() CODE 1
'Déclaration des variables
Dim NomDossier As String
Dim CheminDossier As String
On Error GoTo 1
'Nom de dossier
NomDossier = [C4]
CheminDossier = "C:\Users\Alexis\Documents\2017\" & NomDossier & "\"
If NomDossier = "" Then Exit Sub
'Enregistrement au format pdf
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
CheminDossier & "BL_" & Range("C4").Value & ".pdf", quality:= _
xlQualityStandard, includedocproperties:=True, ignoreprintareas:=False, _
from:=1, to:=1, openafterpublish:=False
1
'Impression de 2 exemplaires
'Sheets("BL").PrintOut , , 2
End Sub
CODE 2
Private Function RenommerFichier(CheminDossier As String, NomDossier As String) As String
Dim i As Long
Dim FSO As Object
Set FSO = CreateObject("Scripting.FileSystemObject")
If FSO.fileExists(CheminDossier & "\" & NomDossier & ".pdf") = True Then
sNouveauNom = NomDossier
i = 0
While FSO.fileExists(CheminDossier & "\" & sNouveauNom & ".pdf") = True
i = i + 1
sNouveauNom = NomDossier & Chr(40) & Format(i, "000") & Chr(41)
Wend
NomDossier = sNouveauNom
End If
Set FSO = Nothing
RenommerFichier = NomDossier
End Function
Sub PDFCREATION()
Dim JobPDF As Object
Dim sNomPDF As String
Dim sCheminPDF As String
Dim sNouveauNomPDF As String
Dim FSO As Object
' le nom du PDF sans extension car PDFCreator l'ajoute ...
sNomPDF = [C4]
sCheminPDF = "C:\Users\Alexis\Documents\2017\" & NomDossier & "\"
Set FSO = CreateObject("Scripting.FileSystemObject")
If Not FSO.FolderExists(sCheminPDF) Then FSO.CreateFolder (sCheminPDF)
Set FSO = Nothing
sNouveauNomPDF = RenommerFichier(sCheminPDF, sNomPDF)
Set JobPDF = CreateObject("PDFCreator.clsPDFCreator")
With JobPDF
.cStart "/NoProcessingAtStartup"
.cOption("UseAutosave") = 1
.cOption("UseAutosaveDirectory") = 1
.cOption("AutosaveDirectory") = sCheminPDF
.cOption("AutosaveFilename") = sNouveauNomPDF
.cOption("AutosaveStartStandardProgram") = 0
.cOption("UpdateInterval") = 0
.cOption("AutosaveFormat") = 0
.cClearCache
End With
ActiveSheet.PrintOut copies:=1, ActivePrinter:="PDFCreator"
Do Until JobPDF.cCountOfPrintjobs = 1
DoEvents
Loop
JobPDF.cPrinterStop = False
Do Until JobPDF.cCountOfPrintjobs = 0
DoEvents
Loop
JobPDF.cClose
Set JobPDF = Nothing
End Sub