référence manquante PDFCreator

ptibaz

XLDnaute Junior
Bonjour à tous !

J'ai créer un fichier avec 2 macros: 1 macro "filtre" et 1 macro pour imprimer en PDF avec PDFCréator

chez moi ca marche car j'ai installé PDFCreator.

mais quand je l'envoi à mes collègues, ca ne marche pas. "référence manquante"

Mes collègues n'ont pas besoin de la macro 2 "PDF", il n'y a que moi qui m'en sert.

Le probleme c'est que ca plante aussi les autres macros.

Que puis-je faire pour que les 2 macros fonctionne chez moi et que la macro 1 pour les autres qui n'ont pas PDFCréator ???

Merci d'avance pour vos réponses.
 

tototiti2008

XLDnaute Barbatruc
Re : référence manquante PDFCreator

Bonjour ptibaz,

Il est possible d'utiliser des références sans cocher les références en utilisant CreateObject
Le soucis est que ça va demander de modifier ton code de ta macro2 "PDF"
Peux-tu nous fournir ce code ?
 

ptibaz

XLDnaute Junior
Re : référence manquante PDFCreator

merci à toi ! voici le code:


Sub PDF()
Application.ScreenUpdating = False 'annule l'affichage pendant l'execution de la macro

'Call renommer
'Call imprimer
'ajouter la reférence PDFCreator


Dim pdfjob As PDFCreator.clsPDFCreator
Dim sPDFName As String
Dim sPDFPath As String
'/// Changer le nom du fichier de sortie sur la lign cidessous: ///
sPDFName = ActiveWorkbook.Name & ".pdf"
sPDFPath = ActiveWorkbook.Path & Application.PathSeparator
'Check if worksheet is empty and exit if so
If IsEmpty(ActiveSheet.UsedRange) Then Exit Sub
Set pdfjob = New PDFCreator.clsPDFCreator
With pdfjob
If .cStart("/NoProcessingAtStartup") = False Then
MsgBox "Can't initialize PDFCreator.", vbCritical + _
vbOKOnly, "PrtPDFCreator"
Exit Sub
End If
.cOption("UseAutosave") = 1
.cOption("UseAutosaveDirectory") = 1
.cOption("AutosaveDirectory") = sPDFPath
.cOption("AutosaveFilename") = sPDFName
.cOption("AutosaveFormat") = 0 ' 0 = PDF
.cClearCache
End With

'Imprime le document en PDF
ActiveSheet.PrintOut From:=1, To:=7, Copies:=1, ActivePrinter:="PDFCreator"

'Attend que le document soit entré dans la file d'impression
Do Until pdfjob.cCountOfPrintjobs = 1
DoEvents
Loop
pdfjob.cPrinterStop = False
'Attend que l'impression du document soit terminée
Do Until pdfjob.cCountOfPrintjobs = 0
DoEvents
Loop
pdfjob.cClose
Set pdfjob = Nothing

MsgBox "Le fichier PDF est créé"
End Sub
 

tototiti2008

XLDnaute Barbatruc
Re : référence manquante PDFCreator

Re,

Essaye comme ça pour voir

Code:
Sub PDF()
Application.ScreenUpdating = False 'annule l'affichage pendant l'execution de la macro

'Call renommer
'Call imprimer
'ne pas ajouter la reférence PDFCreator !!!


Dim pdfjob As Object
Dim sPDFName As String
Dim sPDFPath As String
'/// Changer le nom du fichier de sortie sur la lign cidessous: ///
sPDFName = ActiveWorkbook.Name & ".pdf"
sPDFPath = ActiveWorkbook.Path & Application.PathSeparator
'Check if worksheet is empty and exit if so
If IsEmpty(ActiveSheet.UsedRange) Then Exit Sub
Set pdfjob = CreateObject("PDFCreator.clsPDFCreator")
With pdfjob
If .cStart("/NoProcessingAtStartup") = False Then
MsgBox "Can't initialize PDFCreator.", vbCritical + _
vbOKOnly, "PrtPDFCreator"
Exit Sub
End If
.cOption("UseAutosave") = 1
.cOption("UseAutosaveDirectory") = 1
.cOption("AutosaveDirectory") = sPDFPath
.cOption("AutosaveFilename") = sPDFName
.cOption("AutosaveFormat") = 0 ' 0 = PDF
.cClearCache
End With

'Imprime le document en PDF
ActiveSheet.PrintOut From:=1, To:=7, Copies:=1, ActivePrinter:="PDFCreator"

'Attend que le document soit entré dans la file d'impression
Do Until pdfjob.cCountOfPrintjobs = 1
DoEvents
Loop
pdfjob.cPrinterStop = False
'Attend que l'impression du document soit terminée
Do Until pdfjob.cCountOfPrintjobs = 0
DoEvents
Loop
pdfjob.cClose
Set pdfjob = Nothing

MsgBox "Le fichier PDF est créé"
End Sub

Puis si ça marche, décoches la référence PDFCreator et réessaye
 

ptibaz

XLDnaute Junior
Re : référence manquante PDFCreator

apparemment ca marche. j'ai essayé aussi en modifiant le nom de la dll pour simuler que je l'ai pas.
et la macro 1 marche mais pas la macro 1 PDF. elle plante mais c'est normal. ca n'empeche pas l'utilisation des autres.

je vais l'envoyer à mes collegues et j'attends leurs réponses

Un grand merci pour ta solution et vive le forum

la j'ai pas trop le temps. mais à l'occasion j'aimerais bien savoir ce que tu as fait...

A bientot
 

tototiti2008

XLDnaute Barbatruc
Re : référence manquante PDFCreator

Re,

la j'ai pas trop le temps. mais à l'occasion j'aimerais bien savoir ce que tu as fait...

Pas grand chose

J'ai changé la ligne

Code:
Dim pdfjob As PDFCreator.clsPDFCreator

en

Code:
Dim pdfjob As Object

et la ligne

Code:
Set pdfjob = New PDFCreator.clsPDFCreator

en

Code:
Set pdfjob = CreateObject("PDFCreator.clsPDFCreator")

Je suis passé d'une programmation en "Early binding" vers du "Late binding", qui ne nécessite pas de références
Fait une recherche sur Google si tu veux en savoir plus ;)

Si tu avais des constantes spécifiques à PDFCreator dans ton code, il aurait fallu remplacer les constantes par leur valeur, les arguments nommés dans l'appel des méthodes peut poser problème aussi, pas vu tout ça dans ton code
 

Discussions similaires

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 979
dernier inscrit
bderradji