Bonjour tout le monde,
Je suis désolé de reparler d'un sujet déjà abordé des dizaines de fois sur le forum mais aucune des solutions que j'ai récupéré jusqu'à présent ne fonctionne comme je le voudrais.
Mon but exact : je voudrais exporter l'onglet actif vers un PDF. Le top serait que ce fichier PDF soit enregistré automatiquement dans un répertoire dédié, que le PDF reste ouvert et que la page d'enregistrement de PDF Creator ne s'affiche pas.
J'arrive à faire tout ça, sauf que le PDF reste ouvert..... Je ne comprends vraiment pas pourquoi.
J'ai utilisé ce code :
Auriez vous une idée ?
Je vous remercie par avant de votre aide.
Bonne fin de week end à tout le monde.
Je suis désolé de reparler d'un sujet déjà abordé des dizaines de fois sur le forum mais aucune des solutions que j'ai récupéré jusqu'à présent ne fonctionne comme je le voudrais.
Mon but exact : je voudrais exporter l'onglet actif vers un PDF. Le top serait que ce fichier PDF soit enregistré automatiquement dans un répertoire dédié, que le PDF reste ouvert et que la page d'enregistrement de PDF Creator ne s'affiche pas.
J'arrive à faire tout ça, sauf que le PDF reste ouvert..... Je ne comprends vraiment pas pourquoi.
J'ai utilisé ce code :
Code:
Sub ExportPDF()
Dim NomFichier As String
Dim CheminFichier As String
Dim MemoImprimante As String
Dim InstancePDF As Object
'Mémorisation de l'imprimante active
MemoImprimante = Application.ActivePrinter
'Définition du chemin complet du fichier
CheminFichier = ThisWorkbook.Path & "\PDF\"
NomFichier = "Liste" & Format(Now, "yyyymmddhhmmss")
Set InstancePDF = CreateObject("PDFCreator.clsPDFCreator")
With InstancePDF
If .cStart("/NoProcessingAtStartup") = False Then
MsgBox "Echec lors du lancement de PDFCreator.", vbCritical + vbOKOnly, "PDFCreator"
Exit Sub
End If
.cOption("UseAutosave") = 1
.cOption("UseAutosaveDirectory") = 1
.cOption("AutosaveDirectory") = CheminFichier
.cOption("AutosaveFilename") = NomFichier
.cOption("AutosaveFormat") = 0
.cClearCache
End With
ActiveSheet.PrintOut copies:=1, Collate:=True
'Fichier dans la file d'attente
Do Until InstancePDF.cCountOfPrintjobs = 1
DoEvents
Loop
InstancePDF.cPrinterStop = False
'Attendre que la file d'attente soit vide
Do Until InstancePDF.cCountOfPrintjobs = 0
DoEvents
Loop
InstancePDF.cClose
Set InstancePDF = Nothing
Application.ActivePrinter = MemoImprimante
End Sub
Auriez vous une idée ?
Je vous remercie par avant de votre aide.
Bonne fin de week end à tout le monde.