Impression automatique en pdf [Résolu]

pulpul74 77 Messages postés jeudi 11 octobre 2007Date d'inscription 27 septembre 2010 Dernière intervention - 14 déc. 2009 à 10:41 - Dernière réponse : pulpul74 77 Messages postés jeudi 11 octobre 2007Date d'inscription 27 septembre 2010 Dernière intervention
- 15 déc. 2009 à 11:10
Bonjour.
J'ai développé un projet où je commande une impression d'une page avec un 'Printform'
Seulement j'aimerais aussi faire une sauvegarde soft de cette page, j'ai donc pensé utiliser 'Studio PDF' afin de générer la page en PDF. Voila le code que j'utilise après l'impression sur feuille:
[i]
Application.ActivePrinter = "Studio PDF"
Frm_rapport.PrintForm/i

Seulement voila, une boite de dialogue apparait me demandant où enregistrer le fichier, quel nom...
J'aimerais que cela se fasse automatiquement, sans manipulation de la part de l'opérateur, mais je n'ai pas trouvé comment entrer le chemin et le nom du fichier pdf.
J'ai essayé pas mal de choses mais ca ne marche pas. J'espere vraiment que vous pourrez m'aider.
Merci d'avance
Afficher la suite 

10 réponses

Répondre au sujet
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 15 déc. 2009 à 10:48
+3
Utile
Ouais... Fais toujours la chasse à ces "on error, etc...". Il est très rare qu'ils ne soient pas remplaçables par autre chose de plus rationnel et prudent ! Ce sonty souvent des cache-m**de !
Le code que tu avais tutilisé n'est tout simplemùent pas un code VB6, mais un code VBA (risquiaiot pas de fonctionner !)
Sous VB6, existent l'objet Printer et la collection Printers, à utiliser prudemment ainsi (exemple) :

Dim prt As Printer, impricherchee as string
impricherchee = "..nom de l'impri........."
For Each impri In Printers
  If impri.DeviceName = impricherchee Then
    Set Printer = impri
    Exit For
  End If
Next
if printer.devicename <> impricherchee then
  msgbox "alerte : votre impri " & impricherchee & " n'a pas été trouvée !"
  ' et tes instructions d'abandon, exit sub, par exemple
end if
' et des instrructions d'impression

C'est plus propre et tu sauras au moins où tu vas, ainsi
Et cesse de copier des bouts de code trouvés ici et là, sans t'assurer de leur justesse et, surtout, qu'il correspondent à ton langage de développement
____________________
Très intéressante fable, L'OISELEUR, L'AUTOUR ET L'ALOUETTE !
Cliquer sur "Réponse acceptée" (en bas d'une solution avérée adéquate) rendra service à d'autres. PENSEZ-Y.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de ucfoutu
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 14 déc. 2009 à 11:10
0
Utile
Bonjour,
Application.ActivePrinter n'est pas du VB6 (le présent thème)... sous VB6, on connait par contre l'objet Printer et sa propriété DeviceName
Sous quoi développes-tu donc ?

____________________
Très intéressante fable, L'OISELEUR, L'AUTOUR ET L'ALOUETTE !
Cliquer sur "Réponse acceptée" (en bas d'une solution avérée adéquate) rendra service à d'autres. PENSEZ-Y.
Commenter la réponse de ucfoutu
pulpul74 77 Messages postés jeudi 11 octobre 2007Date d'inscription 27 septembre 2010 Dernière intervention - 14 déc. 2009 à 11:30
0
Utile
Heu... oui en effet, en fait je me suis rendu compte que l'imprimante par défaut c'était mise sous 'Studio PDF'...
Donc en effet cette ligne n'est pas prise en compte... mais il ne m'a pas mis d'erreur donc pour moi ca fonctionnait.

Alors existe t'il une fonction qui me permette de changer l'imprimante, et ensuite avec Studio PDF (ou un autre logiciel d'impression PDF), de faire l'impression virtuel en automatique?
Commenter la réponse de pulpul74
pulpul74 77 Messages postés jeudi 11 octobre 2007Date d'inscription 27 septembre 2010 Dernière intervention - 15 déc. 2009 à 09:13
0
Utile
Personne n'a d'idées?
Commenter la réponse de pulpul74
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 15 déc. 2009 à 09:22
0
Utile
Confirme nous d'abord que tu développes bien sous VB6 et non sous VBA (d'Excel ou de Word, par exemple). Car il est très étonnant que tu n'aies pas eu un message d'erreur sous VB6 (à moins que tu n'aies ajouté un malheureux On Error Resume Next dans ton appli, que je te demanderais alors de faire sauter pour y voir plus clair !)

____________________
Très intéressante fable, L'OISELEUR, L'AUTOUR ET L'ALOUETTE !
Cliquer sur "Réponse acceptée" (en bas d'une solution avérée adéquate) rendra service à d'autres. PENSEZ-Y.
Commenter la réponse de ucfoutu
pulpul74 77 Messages postés jeudi 11 octobre 2007Date d'inscription 27 septembre 2010 Dernière intervention - 15 déc. 2009 à 09:49
0
Utile
Oui donc je suis bien sous VB6.
En effet, j'avais la ligne On error resume next, je l'avais oubliée celle ci, en fait c'est une vieille applic que je retouche donc...
en l'enlevant il m'a bien mis une erreur '424 Un objet est requis'. Donc tu avais bien raison, ce n'est pas la bonne fonction...
Commenter la réponse de pulpul74
pulpul74 77 Messages postés jeudi 11 octobre 2007Date d'inscription 27 septembre 2010 Dernière intervention - 15 déc. 2009 à 10:49
0
Utile
En fait j'ai trouvé une solution, alors après est ce la meilleur, vous me direz bien, j'utilise maintenant le logiciel PDFCreator, on peut le configurer pour qu'il fasse l'enregistrement en automatique. Voila mon code :

'Impression PDF
For Each imprimante In Printers
If imprimante.DeviceName = "PDFCreator" Then
Set Printer = imprimante
SetPrinter = True
End If
Next imprimante
Frm_rapport.PrintForm
'Passage impression papier
For Each imprimante In Printers
If imprimante.DeviceName = "Dell 3100cn" Then
Set Printer = imprimante
SetPrinter = True
End If
Next imprimante
Frm_rapport.PrintForm
Commenter la réponse de pulpul74
pulpul74 77 Messages postés jeudi 11 octobre 2007Date d'inscription 27 septembre 2010 Dernière intervention - 15 déc. 2009 à 10:52
0
Utile
lol ok merci ucfoutu, bon a ce que je vois ton code ressemble au mien donc c'est ok, merci ^^
En effet j'aurais dû faire plus attention, mais en fait comme j'avais pas d'erreur et à cause de cette imprimante par défaut, j'avais pas tout saisie ^^
Commenter la réponse de pulpul74
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 15 déc. 2009 à 10:55
0
Utile
Voilà !
Te reste juste une précaution :
Relever l'imprimante existante avant ton traitement puis la restituer une fois ton traitement terminé (de sorte, en revenant à la situation originelle, à "restituer les lieux en l'état")

____________________
Très intéressante fable, L'OISELEUR, L'AUTOUR ET L'ALOUETTE !
Cliquer sur "Réponse acceptée" (en bas d'une solution avérée adéquate) rendra service à d'autres. PENSEZ-Y.
Commenter la réponse de ucfoutu
pulpul74 77 Messages postés jeudi 11 octobre 2007Date d'inscription 27 septembre 2010 Dernière intervention - 15 déc. 2009 à 11:10
0
Utile
oui très bonne idée, je note. merci pour ton aide ^^
Commenter la réponse de pulpul74

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.