Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Convertir une feuille Excel en PDF

7 réponses
Avatar
GGAL
Bonjour,

J'utilise Excel 2003, et je souhaiterais convertir une feuille sélectionnée
d'un classeur en un document .pdf via l'imprimante virtuelle PDFCreator. (ou
même plusieurs feuilles)
J'ai trouvé la commande suivante qui lance PDFCreator :
ActiveWindow.SelectedSheets.PrintOut copies:=1, ActivePrinter:="PDFCreator",
collate:=True
Mais la fenêtre s'affiche et me demande le nom de fichier, le chemin … ; et
une fois le fichier créé, Acrobat Reader s'ouvre.
Je voudrais que tout se fasse automatiquement.
Merci de vos réponses.

Clt,

GGAL

7 réponses

Avatar
Gloops
[Eviter la boîte de dialogue de sélection de fichier dans PDFCr eator]


Bonjour,

Il faut configurer cela dans PDFCreator.
En l'ouvrant sans paramètre, on voit apparaître une boîte de dialogue
"Moniteur d'impression PDF", où avec la commande Imprimante Options, on
a accès à la boîte de dialogue des options.

S'intéresser à l'onglet Enregistrement Automatique.


Dans l'aide de PDFCreator, on trouve un chapitre "Interface COM", qui
représente une source d'information intéressante si on veut dà ©clencher
un changement de configuration depuis une autre application (par exemple
Excel).

Il peut se poser une question subsidiaire, mais qui dépasse le cadre du
forum, si on se trouve dans une boîte où même les dév eloppeurs n'ont pas
accès à la configuration de leur machine. :/

___________________________________
GGAL a écrit, le 04/04/2009 14:20 :
Bonjour,

J'utilise Excel 2003, et je souhaiterais convertir une feuille sél ectionnée
d'un classeur en un document .pdf via l'imprimante virtuelle PDFCreator . (ou
même plusieurs feuilles)
J'ai trouvé la commande suivante qui lance PDFCreator :
ActiveWindow.SelectedSheets.PrintOut copies:=1, ActivePrinter:="PDF Creator",
collate:=True
Mais la fenêtre s'affiche et me demande le nom de fichier, le chem in … ; et
une fois le fichier créé, Acrobat Reader s'ouvre.
Je voudrais que tout se fasse automatiquement.
Merci de vos réponses.

Clt,

GGAL


Avatar
GGAL
Merci, mais en cherchant sur la toile, j'ai trouvé quelque chose
d'intéressant :

http://www.excel-downloads.com/forum/112586-edition-pdf.html

J'ai légèrement adapté la procédure : au choix, exporter en PDF la feuille
active, des feuilles sélectionnées, le classeur entier.

Clt,

GGAL

Sub printtest_1()
'La feuille active.
a = ActiveSheet.Name
Call printsheetinpdf(Sheets(a))
End Sub

Sub printtest_2()
'Quelques feuilles du classeur, à adapter.
a = ActiveSheet.Name
b = "Annexe"
c = Sheets(3)
Call printsheetinpdf(Sheets(Array(a, b, c)))
End Sub

Sub printtest_3()
'Le classeur entier.
Call printsheetinpdf(ActiveWorkbook)
End Sub

Sub printsheetinpdf(shsheet As Object)
Dim pdfjob As Object
Dim spdfname As String
Dim spdfpath As String
spdfname = "Fiche navette_" & Range("h8") & "_" & Format(Date,
"dd-mm-yyyy") & ".pdf" 'Nom du fichier, à adapter
spdfpath = "D:Documents and Settings" & UCase(Environ("username")) &
"Mes documents" 'Nom du chemin, à adapter
Call killtask("PDFCreator.exe")
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("UseAutisaveDirectory") = 1
.cOption("AutosaveDirectory") = spdfpath
.cOption("AutosaveFilename") = spdfname
.cOption("AutosaveFormat") = 0
.cClearCache
End With
shsheet.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
Application.Wait (Now + TimeValue("0:00:3"))
.cClose
End With
Set pdfjob = Nothing
End Sub

Sub killtask(sappname As String)
Dim oProclist As Object
Dim oWMI As Object
Dim oProc As Object
Set oWMI = GetObject("winmgmts:")
If IsNull(oWMI) = False Then
Set oProclist = oWMI.InstancesOf("win32_process")
For Each oProc In oProclist
If UCase(oProc.Name) = UCase(sappname) Then
oProc.Terminate (0)
End If
Next oProc
Else
MsgBox "Killing """ & sappname & """ - Can't create WMI Object.",
vbOKOnly + vbCritical, "CloseAPP_B"
End If
Set oProclist = Nothing
Set oWMI = Nothing
End Sub



"Gloops" a écrit :

[Eviter la boîte de dialogue de sélection de fichier dans PDFCreator]


Bonjour,

Il faut configurer cela dans PDFCreator.
En l'ouvrant sans paramètre, on voit apparaître une boîte de dialogue
"Moniteur d'impression PDF", où avec la commande Imprimante Options, on
a accès à la boîte de dialogue des options.

S'intéresser à l'onglet Enregistrement Automatique.


Dans l'aide de PDFCreator, on trouve un chapitre "Interface COM", qui
représente une source d'information intéressante si on veut déclencher
un changement de configuration depuis une autre application (par exemple
Excel).

Il peut se poser une question subsidiaire, mais qui dépasse le cadre du
forum, si on se trouve dans une boîte où même les développeurs n'ont pas
accès à la configuration de leur machine. :/

___________________________________
GGAL a écrit, le 04/04/2009 14:20 :
> Bonjour,
>
> J'utilise Excel 2003, et je souhaiterais convertir une feuille sélectionnée
> d'un classeur en un document .pdf via l'imprimante virtuelle PDFCreator. (ou
> même plusieurs feuilles)
> J'ai trouvé la commande suivante qui lance PDFCreator :
> ActiveWindow.SelectedSheets.PrintOut copies:=1, ActivePrinter:="PDFCreator",
> collate:=True
> Mais la fenêtre s'affiche et me demande le nom de fichier, le chemin … ; et
> une fois le fichier créé, Acrobat Reader s'ouvre.
> Je voudrais que tout se fasse automatiquement.
> Merci de vos réponses.
>
> Clt,
>
> GGAL




Avatar
Mgr T. Banni
bonjour à tous,
cette proc intéresse beaucoup notre diocèse
quelle bonne âme pourrait me dire pourquoi elle bogue sur la phrase :

Set pdfjob = CreateObject("PDFCreator.clsPDFCreator")

avec le message : Un contrôle ActiveX ne peut créer un objet

aucune info de références manquantes dans la liste mais, par contre,
plusieurs références aux couleurs de PDF...et quelquechose ; seraient-elles
à cocher?
merci à celui/ceux ou celle/celles qui me répondra (dront) car, non
seulement ils se verront ouvrir large les portes du confessional mais ils y
bénéficieront d'un tarif spécial....
Mgr T.B.

"GGAL" a écrit dans le message de news:

Merci, mais en cherchant sur la toile, j'ai trouvé quelque chose
d'intéressant :

http://www.excel-downloads.com/forum/112586-edition-pdf.html

J'ai légèrement adapté la procédure : au choix, exporter en PDF la feuille
active, des feuilles sélectionnées, le classeur entier.

Clt,

GGAL

Sub printtest_1()
'La feuille active.
a = ActiveSheet.Name
Call printsheetinpdf(Sheets(a))
End Sub

Sub printtest_2()
'Quelques feuilles du classeur, à adapter.
a = ActiveSheet.Name
b = "Annexe"
c = Sheets(3)
Call printsheetinpdf(Sheets(Array(a, b, c)))
End Sub

Sub printtest_3()
'Le classeur entier.
Call printsheetinpdf(ActiveWorkbook)
End Sub

Sub printsheetinpdf(shsheet As Object)
Dim pdfjob As Object
Dim spdfname As String
Dim spdfpath As String
spdfname = "Fiche navette_" & Range("h8") & "_" & Format(Date,
"dd-mm-yyyy") & ".pdf" 'Nom du fichier, à adapter
spdfpath = "D:Documents and Settings" & UCase(Environ("username")) &
"Mes documents" 'Nom du chemin, à adapter
Call killtask("PDFCreator.exe")
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("UseAutisaveDirectory") = 1
.cOption("AutosaveDirectory") = spdfpath
.cOption("AutosaveFilename") = spdfname
.cOption("AutosaveFormat") = 0
.cClearCache
End With
shsheet.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
Application.Wait (Now + TimeValue("0:00:3"))
.cClose
End With
Set pdfjob = Nothing
End Sub

Sub killtask(sappname As String)
Dim oProclist As Object
Dim oWMI As Object
Dim oProc As Object
Set oWMI = GetObject("winmgmts:")
If IsNull(oWMI) = False Then
Set oProclist = oWMI.InstancesOf("win32_process")
For Each oProc In oProclist
If UCase(oProc.Name) = UCase(sappname) Then
oProc.Terminate (0)
End If
Next oProc
Else
MsgBox "Killing """ & sappname & """ - Can't create WMI Object.",
vbOKOnly + vbCritical, "CloseAPP_B"
End If
Set oProclist = Nothing
Set oWMI = Nothing
End Sub



"Gloops" a écrit :

[Eviter la boîte de dialogue de sélection de fichier dans PDFCreator]


Bonjour,

Il faut configurer cela dans PDFCreator.
En l'ouvrant sans paramètre, on voit apparaître une boîte de dialogue
"Moniteur d'impression PDF", où avec la commande Imprimante Options, on
a accès à la boîte de dialogue des options.

S'intéresser à l'onglet Enregistrement Automatique.


Dans l'aide de PDFCreator, on trouve un chapitre "Interface COM", qui
représente une source d'information intéressante si on veut déclencher
un changement de configuration depuis une autre application (par exemple
Excel).

Il peut se poser une question subsidiaire, mais qui dépasse le cadre du
forum, si on se trouve dans une boîte où même les développeurs n'ont pas
accès à la configuration de leur machine. :/

___________________________________
GGAL a écrit, le 04/04/2009 14:20 :
> Bonjour,
>
> J'utilise Excel 2003, et je souhaiterais convertir une feuille
> sélectionnée
> d'un classeur en un document .pdf via l'imprimante virtuelle
> PDFCreator. (ou
> même plusieurs feuilles)
> J'ai trouvé la commande suivante qui lance PDFCreator :
> ActiveWindow.SelectedSheets.PrintOut copies:=1,
> ActivePrinter:="PDFCreator",
> collate:=True
> Mais la fenêtre s'affiche et me demande le nom de fichier, le chemin …
> ; et
> une fois le fichier créé, Acrobat Reader s'ouvre.
> Je voudrais que tout se fasse automatiquement.
> Merci de vos réponses.
>
> Clt,
>
> GGAL






Avatar
dunkelzahn
Bonjour,

Je ne sais pas si c'est en rapport ou même si le format est identique
au vôtre, mais sur le site de l'auteur; il est marqué ainsi :

Dim pdfjob As PDFCreator.clsPDFCreator

Source :http://www.pdfforge.org/node/493

Ou même une autre source : http://www.pdfforge.org/node/604

On 14 avr, 17:31, "Mgr T. Banni" wrote:
bonjour à tous,
cette proc intéresse beaucoup notre diocèse
quelle bonne âme pourrait me dire pourquoi elle bogue sur la phrase :

Set pdfjob = CreateObject("PDFCreator.clsPDFCreator")

avec le message : Un contrôle ActiveX ne peut créer un objet

aucune info de références manquantes dans la liste mais, par contre,
plusieurs références aux couleurs de PDF...et quelquechose ; seraient -elles
à cocher?
merci à celui/ceux ou celle/celles qui me répondra (dront) car, non
seulement  ils se verront ouvrir large les portes du confessional mais ils y
bénéficieront d'un tarif spécial....
Mgr T.B.

"GGAL" a écrit dans le message de news :




> Merci, mais en cherchant sur la toile, j'ai trouvé quelque chose
> d'intéressant :

>http://www.excel-downloads.com/forum/112586-edition-pdf.html

> J'ai légèrement adapté la procédure : au choix, exporter en PDF la feuille
> active, des feuilles sélectionnées, le classeur entier.

> Clt,

> GGAL

> Sub printtest_1()
> 'La feuille active.
>    a = ActiveSheet.Name
>    Call printsheetinpdf(Sheets(a))
> End Sub

> Sub printtest_2()
> 'Quelques feuilles du classeur, à adapter.
>    a = ActiveSheet.Name
>    b = "Annexe"
>    c = Sheets(3)
>    Call printsheetinpdf(Sheets(Array(a, b, c)))
> End Sub

> Sub printtest_3()
> 'Le classeur entier.
>    Call printsheetinpdf(ActiveWorkbook)
> End Sub

> Sub printsheetinpdf(shsheet As Object)
>    Dim pdfjob As Object
>    Dim spdfname As String
>    Dim spdfpath As String
>    spdfname = "Fiche navette_" & Range("h8") & "_" & Format(Date,
> "dd-mm-yyyy") & ".pdf" 'Nom du fichier, à adapter
>    spdfpath = "D:Documents and Settings" & UCase(Environ("usern ame")) &
> "Mes documents" 'Nom du chemin, à adapter
>    Call killtask("PDFCreator.exe")
>    Set pdfjob = CreateObject("PDFCreator.clsPDFCreator")
>    With pdfjob
>        If .cstart("/NoProcessingAtStartup") = False Then
>            MsgBox "Can't initialize PDFCreator.", vbCritica l + vbOKOnly,
> "PrtPDFCreator"
>            Exit Sub
>        End If
>        .cOption("UseAutosave") = 1
>        .cOption("UseAutisaveDirectory") = 1
>        .cOption("AutosaveDirectory") = spdfpath
>        .cOption("AutosaveFilename") = spdfname
>        .cOption("AutosaveFormat") = 0
>        .cClearCache
>    End With
>    shsheet.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
>        Application.Wait (Now + TimeValue("0:00:3"))
>        .cClose
>    End With
>    Set pdfjob = Nothing
> End Sub

> Sub killtask(sappname As String)
>    Dim oProclist As Object
>    Dim oWMI As Object
>    Dim oProc As Object
>    Set oWMI = GetObject("winmgmts:")
>    If IsNull(oWMI) = False Then
>        Set oProclist = oWMI.InstancesOf("win32_process")
>        For Each oProc In oProclist
>            If UCase(oProc.Name) = UCase(sappname) Then
>                oProc.Terminate (0)
>            End If
>        Next oProc
>    Else
>        MsgBox "Killing """ & sappname & """ - Can't create WMI Object.",
> vbOKOnly + vbCritical, "CloseAPP_B"
>    End If
>    Set oProclist = Nothing
>    Set oWMI = Nothing
> End Sub

> "Gloops" a écrit :

>> [Eviter la boîte de dialogue de sélection de fichier dans PDFCreat or]

>> Bonjour,

>> Il faut configurer cela dans PDFCreator.
>> En l'ouvrant sans paramètre, on voit apparaître une boîte de dia logue
>> "Moniteur d'impression PDF", où avec la commande Imprimante Options, on
>> a accès à la boîte de dialogue des options.

>> S'intéresser à l'onglet Enregistrement Automatique.

>> Dans l'aide de PDFCreator, on trouve un chapitre "Interface COM", qui
>> représente une source d'information intéressante si on veut décl encher
>> un changement de configuration depuis une autre application (par exemp le
>> Excel).

>> Il peut se poser une question subsidiaire, mais qui dépasse le cadre du
>> forum, si on se trouve dans une boîte où même les développeurs n'ont pas
>> accès à la configuration de leur machine. :/

>> ___________________________________
>> GGAL a écrit, le 04/04/2009 14:20 :
>> > Bonjour,

>> > J'utilise Excel 2003, et je souhaiterais convertir une feuille
>> > sélectionnée
>> > d'un classeur en un document .pdf via l'imprimante virtuelle
>> > PDFCreator. (ou
>> > même plusieurs feuilles)
>> > J'ai trouvé la commande suivante qui lance PDFCreator :
>> > ActiveWindow.SelectedSheets.PrintOut copies:=1,
>> > ActivePrinter:="PDFCreator",
>> > collate:=True
>> > Mais la fenêtre s'affiche et me demande le nom de fichier, le chem in …
>> > ; et
>> > une fois le fichier créé, Acrobat Reader s'ouvre.
>> > Je voudrais que tout se fasse automatiquement.
>> > Merci de vos réponses.

>> > Clt,

>> > GGAL- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


Avatar
Gloops
Mgr T. Banni a écrit, le 14/04/2009 17:31 :
bonjour à tous,



Bonjour

cette proc intéresse beaucoup notre diocèse
quelle bonne âme pourrait me dire pourquoi elle bogue sur la phras e :

Set pdfjob = CreateObject("PDFCreator.clsPDFCreator")

avec le message : Un contrôle ActiveX ne peut créer un objet



Ah, ça, si je ne m'abuse, c'est l'erreur 429. (à vérifier en affichant
Err.Number dans la procédure d'erreur)
Ses causes peuvent être tellement diverses que c'est un sujet entier en
soi, et il y faut beaucoup de persévérance. J'ai déjà eu un cas où le
problème s'est réglé par l'arrivée en fin de carrià ¨re de la machine (il
est vrai que les constructeurs ont décidé pour nous une fin de carrière
de plus en plus prématurée des machines, ignorants qu'ils sembl ent être
de l'état de la planète).

Une question à ne pas oublier de poser au préalable : est-ce qu e par
ailleurs PDFCreator fonctionne bien, sur cette machine ? Il est installà ©
en imprimante j'imagine ? S'en servir deux ou trois fois pour vérifi er
que tout va bien.
Une mauvaise installation de l'application appelée est en bonne plac e
parmi les causes possibles de l'erreur 429.
D'ailleurs, une réinstallation ne mange pas de pain ...

http://www.pdfcreator.fr/

Une fois ce point éliminé, une recherche sur les arguments "err eur 429"
peut fournir des renseignements utiles.

Je viens de relire dans ce contexte une fiche Microsoft qui incite à
préférer la déclaration précoce à la déclar ation tardive, ce qui rejoint
la remarque de dunkelzahn dans ce fil.

Dim pdfjob As PDFCreator.clsPDFCreator
Set pdfjob = New PDFCreator.clsPDFCreator

(déclaration précoce : pdfjob est tout de suite déclaré comme
PDFCreator.clsPDFCreator, et n'existe jamais comme autre chose)

il y a même une variante en une seule ligne :

Dim pdfjob As New PDFCreator.clsPDFCreator

Plutôt que

Dim pdfjob As Object
Set pdfjob = CreateObject("PDFCreator.clsPDFCreator")

(déclaration tardive : pdfjob existe d'abord comme objet, il n'y a q ue
lorsqu'il est initialisé -par CreateObject- que son type est connu)

Pour utiliser la première formule -ou sa variante- il faut effective ment
que la bonne référence soit cochée, à savoir PDFCreat or. C'est donc plus
contraignant lors du développement, mais les erreurs de déploie ment sont
plus faciles à pister. D'ailleurs l'avantage si la référen ce est cochée
est que lorsqu'on tape "Dim pdfjob As ", les références disponi bles sont
proposées, et à mesure qu'on tape des lettres seules les ré férences dont
le nom commence par les lettres tapées restent affichées. Micro soft
appelle ça l'Intellisense.

Si on dispose d'une version d'Excel qui comporte un explorateur d'objets
(dans l'environnement de développement), il ne faut pas se priver de
s'en servir, ça permet de visualiser ce que contient chaque réf érence
sélectionnée, en l'occurrence on voit bien effectivement un mod ule
clsPDFCreator dans PDFCreator.

A priori la déclaration précoce ne va pas forcément suffir e à régler le
problème, mais l'esprit est que ça aide à le localiser. En core plus,
d'ailleurs, avec l'explorateur d'objets.


aucune info de références manquantes dans la liste mais, par contre,
plusieurs références aux couleurs de PDF...et quelquechose ;
seraient-elles à cocher?



La première, surtout. PDFCreator.
Voir ci-dessus.

merci à celui/ceux ou celle/celles qui me répondra (dront) ca r, non
seulement ils se verront ouvrir large les portes du confessional mais
ils y bénéficieront d'un tarif spécial....



Après tout, on nous fait bien déjà payer l'eau, l'édu cation, les soins,
on louche sur l'air, pourquoi pas bientôt le confessionnal ... ;)
Avatar
Mgr T. Banni
bonjour dunkelzahn
et merci pour ta réponse
en fait, grâce à l'aide de michel le québécois, je viens juste de
m'apercevoir que si la proc boguait sur la ligne en question, c'est à cause
de la version de PDFCreator : j'avais la 0.8.0 et il faut la 0.9.0 pour que
la proc gazouille comme un aiguiseur
allez en paix DF
Mgr T.B. qui avait écrit ces lignes il y a bien 5 heures....(bouh que mes
fidèles sont accaparants)

"dunkelzahn" a écrit dans le message de
news:
Bonjour,

Je ne sais pas si c'est en rapport ou même si le format est identique
au vôtre, mais sur le site de l'auteur; il est marqué ainsi :

Dim pdfjob As PDFCreator.clsPDFCreator

Source :http://www.pdfforge.org/node/493

Ou même une autre source : http://www.pdfforge.org/node/604

On 14 avr, 17:31, "Mgr T. Banni" wrote:
bonjour à tous,
cette proc intéresse beaucoup notre diocèse
quelle bonne âme pourrait me dire pourquoi elle bogue sur la phrase :

Set pdfjob = CreateObject("PDFCreator.clsPDFCreator")

avec le message : Un contrôle ActiveX ne peut créer un objet

aucune info de références manquantes dans la liste mais, par contre,
plusieurs références aux couleurs de PDF...et quelquechose ;
seraient-elles
à cocher?
merci à celui/ceux ou celle/celles qui me répondra (dront) car, non
seulement ils se verront ouvrir large les portes du confessional mais ils
y
bénéficieront d'un tarif spécial....
Mgr T.B.

"GGAL" a écrit dans le message de news:




> Merci, mais en cherchant sur la toile, j'ai trouvé quelque chose
> d'intéressant :

>http://www.excel-downloads.com/forum/112586-edition-pdf.html

> J'ai légèrement adapté la procédure : au choix, exporter en PDF la
> feuille
> active, des feuilles sélectionnées, le classeur entier.

> Clt,

> GGAL

> Sub printtest_1()
> 'La feuille active.
> a = ActiveSheet.Name
> Call printsheetinpdf(Sheets(a))
> End Sub

> Sub printtest_2()
> 'Quelques feuilles du classeur, à adapter.
> a = ActiveSheet.Name
> b = "Annexe"
> c = Sheets(3)
> Call printsheetinpdf(Sheets(Array(a, b, c)))
> End Sub

> Sub printtest_3()
> 'Le classeur entier.
> Call printsheetinpdf(ActiveWorkbook)
> End Sub

> Sub printsheetinpdf(shsheet As Object)
> Dim pdfjob As Object
> Dim spdfname As String
> Dim spdfpath As String
> spdfname = "Fiche navette_" & Range("h8") & "_" & Format(Date,
> "dd-mm-yyyy") & ".pdf" 'Nom du fichier, à adapter
> spdfpath = "D:Documents and Settings" & UCase(Environ("username")) &
> "Mes documents" 'Nom du chemin, à adapter
> Call killtask("PDFCreator.exe")
> 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("UseAutisaveDirectory") = 1
> .cOption("AutosaveDirectory") = spdfpath
> .cOption("AutosaveFilename") = spdfname
> .cOption("AutosaveFormat") = 0
> .cClearCache
> End With
> shsheet.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
> Application.Wait (Now + TimeValue("0:00:3"))
> .cClose
> End With
> Set pdfjob = Nothing
> End Sub

> Sub killtask(sappname As String)
> Dim oProclist As Object
> Dim oWMI As Object
> Dim oProc As Object
> Set oWMI = GetObject("winmgmts:")
> If IsNull(oWMI) = False Then
> Set oProclist = oWMI.InstancesOf("win32_process")
> For Each oProc In oProclist
> If UCase(oProc.Name) = UCase(sappname) Then
> oProc.Terminate (0)
> End If
> Next oProc
> Else
> MsgBox "Killing """ & sappname & """ - Can't create WMI Object.",
> vbOKOnly + vbCritical, "CloseAPP_B"
> End If
> Set oProclist = Nothing
> Set oWMI = Nothing
> End Sub

> "Gloops" a écrit :

>> [Eviter la boîte de dialogue de sélection de fichier dans PDFCreator]

>> Bonjour,

>> Il faut configurer cela dans PDFCreator.
>> En l'ouvrant sans paramètre, on voit apparaître une boîte de dialogue
>> "Moniteur d'impression PDF", où avec la commande Imprimante Options, on
>> a accès à la boîte de dialogue des options.

>> S'intéresser à l'onglet Enregistrement Automatique.

>> Dans l'aide de PDFCreator, on trouve un chapitre "Interface COM", qui
>> représente une source d'information intéressante si on veut déclencher
>> un changement de configuration depuis une autre application (par
>> exemple
>> Excel).

>> Il peut se poser une question subsidiaire, mais qui dépasse le cadre du
>> forum, si on se trouve dans une boîte où même les développeurs n'ont
>> pas
>> accès à la configuration de leur machine. :/

>> ___________________________________
>> GGAL a écrit, le 04/04/2009 14:20 :
>> > Bonjour,

>> > J'utilise Excel 2003, et je souhaiterais convertir une feuille
>> > sélectionnée
>> > d'un classeur en un document .pdf via l'imprimante virtuelle
>> > PDFCreator. (ou
>> > même plusieurs feuilles)
>> > J'ai trouvé la commande suivante qui lance PDFCreator :
>> > ActiveWindow.SelectedSheets.PrintOut copies:=1,
>> > ActivePrinter:="PDFCreator",
>> > collate:=True
>> > Mais la fenêtre s'affiche et me demande le nom de fichier, le
>> > chemin …
>> > ; et
>> > une fois le fichier créé, Acrobat Reader s'ouvre.
>> > Je voudrais que tout se fasse automatiquement.
>> > Merci de vos réponses.

>> > Clt,

>> > GGAL- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


Avatar
Mgr T. Banni
merci, gloops, pour cette réponse plus que documentée et; de ce fait,
échappant beaucoup à mon entendement :-)
comme je viens de le dire ici, j'ai essayé cette proc avec une version autre
de PDFCreator et elle a bien fonctionné
dans les causes diverses zet nombreuses que tu évoques pour l'erreur 429, je
pencherais volontiers, pour ce qui me concerne, pour une mauvaise
installation de l'application car, par exemple, je ne trouve pas la
référence PDF Creator dans la liste alors qu'elle existe bien sur l'autre
ordi qui a l'autre version de PDFCreator
en tous cas, encore un grand merci pour ces explications
Mgr T.B.

"Gloops" a écrit dans le message de news:

Mgr T. Banni a écrit, le 14/04/2009 17:31 :
bonjour à tous,



Bonjour

cette proc intéresse beaucoup notre diocèse
quelle bonne âme pourrait me dire pourquoi elle bogue sur la phrase :

Set pdfjob = CreateObject("PDFCreator.clsPDFCreator")

avec le message : Un contrôle ActiveX ne peut créer un objet



Ah, ça, si je ne m'abuse, c'est l'erreur 429. (à vérifier en affichant
Err.Number dans la procédure d'erreur)
Ses causes peuvent être tellement diverses que c'est un sujet entier en
soi, et il y faut beaucoup de persévérance. J'ai déjà eu un cas où le
problème s'est réglé par l'arrivée en fin de carrière de la machine (il
est vrai que les constructeurs ont décidé pour nous une fin de carrière
de plus en plus prématurée des machines, ignorants qu'ils semblent être
de l'état de la planète).

Une question à ne pas oublier de poser au préalable : est-ce que par
ailleurs PDFCreator fonctionne bien, sur cette machine ? Il est installé
en imprimante j'imagine ? S'en servir deux ou trois fois pour vérifier
que tout va bien.
Une mauvaise installation de l'application appelée est en bonne place
parmi les causes possibles de l'erreur 429.
D'ailleurs, une réinstallation ne mange pas de pain ...

http://www.pdfcreator.fr/

Une fois ce point éliminé, une recherche sur les arguments "erreur 429"
peut fournir des renseignements utiles.

Je viens de relire dans ce contexte une fiche Microsoft qui incite à
préférer la déclaration précoce à la déclaration tardive, ce qui rejoint
la remarque de dunkelzahn dans ce fil.

Dim pdfjob As PDFCreator.clsPDFCreator
Set pdfjob = New PDFCreator.clsPDFCreator

(déclaration précoce : pdfjob est tout de suite déclaré comme
PDFCreator.clsPDFCreator, et n'existe jamais comme autre chose)

il y a même une variante en une seule ligne :

Dim pdfjob As New PDFCreator.clsPDFCreator

Plutôt que

Dim pdfjob As Object
Set pdfjob = CreateObject("PDFCreator.clsPDFCreator")

(déclaration tardive : pdfjob existe d'abord comme objet, il n'y a que
lorsqu'il est initialisé -par CreateObject- que son type est connu)

Pour utiliser la première formule -ou sa variante- il faut effectivement
que la bonne référence soit cochée, à savoir PDFCreator. C'est donc plus
contraignant lors du développement, mais les erreurs de déploiement sont
plus faciles à pister. D'ailleurs l'avantage si la référence est cochée
est que lorsqu'on tape "Dim pdfjob As ", les références disponibles sont
proposées, et à mesure qu'on tape des lettres seules les références dont
le nom commence par les lettres tapées restent affichées. Microsoft
appelle ça l'Intellisense.

Si on dispose d'une version d'Excel qui comporte un explorateur d'objets
(dans l'environnement de développement), il ne faut pas se priver de
s'en servir, ça permet de visualiser ce que contient chaque référence
sélectionnée, en l'occurrence on voit bien effectivement un module
clsPDFCreator dans PDFCreator.

A priori la déclaration précoce ne va pas forcément suffire à régler le
problème, mais l'esprit est que ça aide à le localiser. Encore plus,
d'ailleurs, avec l'explorateur d'objets.


aucune info de références manquantes dans la liste mais, par contre,
plusieurs références aux couleurs de PDF...et quelquechose ;
seraient-elles à cocher?



La première, surtout. PDFCreator.
Voir ci-dessus.

merci à celui/ceux ou celle/celles qui me répondra (dront) car, non
seulement ils se verront ouvrir large les portes du confessional mais ils
y bénéficieront d'un tarif spécial....



Après tout, on nous fait bien déjà payer l'eau, l'éducation, les soins,
on louche sur l'air, pourquoi pas bientôt le confessionnal ... ;)