Bonjour,
Tout d’abord je vais expliquer un peut se que mon application vb fait.
Elle crée des fichiers en .xls et les enregistres.
Suite à cela je récupère ses fichiers, je les ouvres et je sélectionne les pages à enregistrer en pdf.
Toute ce passe très bien sauf qu’une fois sur deux j’ai une erreur : « erreur d’exécution ‘91’ : variable objet ou variable de bloc with non définie »
Et cette erreur s’applique sur le bout de code suivant :
ActiveSheet.PrintOut Copies:=1, ActivePrinter:="PDFCreator"
J’ai essayée plusieurs choses notamment le remplacer par:
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:="PDFCreator"
mais cela fait pareil.
Je vous met la fonction entière de création de mon pdf.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
Sub PrintToPDF (Optional ByVal strPDFName As String = "", Optional ByVal strDirectory As String = "") ' nom pdf , nom repertoir
Dim pdfjob As PDFCreator.clsPDFCreator ' Objet PDF
Dim sPDFName As String
Dim sPDFPath As String
sPDFName = strPDFName
Set pdfjob = New PDFCreator.clsPDFCreator
With pdfjob
If .cStart("/NoProcessingAtStartup") = False Then
MsgBox "On ne peut pas lancer PDFCreator.", vbCritical + _
vbOKOnly, "PrtPDFCreator"
Exit Sub
.cOption("UseAutosave") = 1
.cOption("UseAutosaveDirectory") = 1
.cOption("AutosaveDirectory") = strDirectory ' ' Répertoire de stockage du Fichier PDF généré
.cOption("AutosaveFilename") = sPDFName
.cOption("AutosaveFormat") = 0
.cDefaultPrinter = "PDFCreator" ' écrase par PDFCreator
.cClearCache
End With
'ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:="PDFCreator"
ActiveSheet.PrintOut Copies:=1, ActivePrinter:="PDFCreator"
Do Until pdfjob.cCountOfPrintjobs = 1
DoEvents
Loop
pdfjob.cPrinterStop = False
Do Until pdfjob.cCountOfPrintjobs = 0
DoEvents
Loop
pdfjob.cClose
Set pdfjob = Nothing
End Sub |
Merci pour m’avoir lu et pour se qui répondront merci encore ^^
Partager