Menu

Impression avec pdf creator vba Excel [Résolu/Fermé]

PYGOS69 75 Messages postés jeudi 23 août 2012Date d'inscription 17 juin 2017 Dernière intervention - 21 juin 2016 à 22:31 - Dernière réponse : GermPeru 172 Messages postés mercredi 7 décembre 2016Date d'inscription 27 mars 2018 Dernière intervention
- 20 mai 2017 à 17:29
Bonjour,

Je souhaite, à partir d'une macro, enregistrer une feuille Excel , au format PDF avec l'imprimante "PDF CREATOR", qui n'est pas l'imprimante par défaut.

Je n'utilise pas le format pdf, proposé par excel, car j'obtiens un fichier pdf de (500ko) alors que si j'utilise l'imprimante pdf créator , le fichier ne fait que 170 ko.

Je précise que cette feuille est utilisée par plusieurs utilisateurs dans une entreprise....

Demande :

à partir d'un bouton (macro), je souhaite que vba enregistre sur le bureau de l'utilisateur un fichier au format pdf, de la feuille active, avec comme nom :

le nom sera toujours : PJ_IJ.pdf

A chaque activation de la macro, vba devra remplacer le fichier existant sur le bureau, si un fichier existe déjà.......

Merci d'avance pour votre aide.....

Afficher la suite 

18 réponses

f894009 13048 Messages postés dimanche 25 novembre 2007Date d'inscription 24 mai 2018 Dernière intervention - 23 juin 2016 à 14:03
0
Utile
Bonjour,

Petit probleme avec PDFCreator, plus possible de donner le chemin pour les fichier par programmation, il faudrait donc definir dans les parametres de profil le chemin par defaut. Pour le reste, selection PDFcreator pour sauvegarde fichier et remettre l'imprimante de depart ca ne pose aucun probleme

PYGOS69 75 Messages postés jeudi 23 août 2012Date d'inscription 17 juin 2017 Dernière intervention > f894009 13048 Messages postés dimanche 25 novembre 2007Date d'inscription 24 mai 2018 Dernière intervention - 24 juin 2016 à 18:33
Merci !

Peux t on éviter les 3 boites de dialogue ?

Le nom reste le nom du fichier et non PJ_IJ.pdf est-ce normal ?

Encore Merci !
f894009 13048 Messages postés dimanche 25 novembre 2007Date d'inscription 24 mai 2018 Dernière intervention > PYGOS69 75 Messages postés jeudi 23 août 2012Date d'inscription 17 juin 2017 Dernière intervention - 25 juin 2016 à 07:39
Bonjour,

Vous connaissez un peu la programmation VBA excel ??????

Peux t on éviter les 3 boites de dialogue ?
voir f894009 - 24 juin 2016 à 07:56

Le nom reste le nom du fichier et non PJ_IJ.pdf est-ce normal ?
Vous avez change le chemin par defaut dans les parametres de PDFCreator ???

Pour la mise au point, mettez les lignes de code On Error en commentaire afin d'avoir les erreurs
PYGOS69 75 Messages postés jeudi 23 août 2012Date d'inscription 17 juin 2017 Dernière intervention > f894009 13048 Messages postés dimanche 25 novembre 2007Date d'inscription 24 mai 2018 Dernière intervention - 25 juin 2016 à 10:04
Bonjour,

Oui merci, tout fonctionne, mais j'ai indiqué le nom du chemin :

C:\Users\Pygos\Desktop

Je pensais que la macro pouvait le faire automatiquement.....

Encore merci et bonne journée !
GermPeru 172 Messages postés mercredi 7 décembre 2016Date d'inscription 27 mars 2018 Dernière intervention > f894009 13048 Messages postés dimanche 25 novembre 2007Date d'inscription 24 mai 2018 Dernière intervention - 20 mai 2017 à 14:57
Merci exactement ce que je cherchais! Parfait je dirais meme :)
GermPeru 172 Messages postés mercredi 7 décembre 2016Date d'inscription 27 mars 2018 Dernière intervention - 20 mai 2017 à 17:29
Bonjour f894009,

Je ene sais pas sis tu suis tjs le fil de la discution, mon probleme est le suivant:

Je cherchea selectionner l´imprimante suivante:
CutePDF en CPW2:

Je ne comprends pas trop pk du CPW, enfin bref j´ai changé le nom c´est pas le soucis, mais quand je procede a la boucle, elle se trouve en 4iem position donc pb avec le nom.

Application.ActivePrinter = Imprimante.Name & " en CPW" & Format(CPW, "0:")

J´ai essayé d adapter ton code a mes besoisn et avec mes connaissance car je cherche juste a asigner le nom de l´imprimante.

Function Imp_PDF() As Boolean
    Dim strcomputer As String
    Dim objetWMI As Object, ImprimantesDispo As Object, Imprimante As Object
    Dim CPW As Byte

    Set objetWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
    'liste les drivers imprimantes installés sur le poste
    Set ImprimantesDispo = objetWMI.ExecQuery("Select * from Win32_Printer")
    CPW = 0
    For Each Imprimante In ImprimantesDispo
        If Imprimante.Name Like "CutePDF*" Then
            Application.ActivePrinter = Imprimante.Name & " en CPW" & Format(CPW, "0:")
            Imp_PDF = Application.ActivePrinter
            Exit For
        End If
        CPW = CPW + 1
    Next
 End Function


Merci d´avance