IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Imprimer un fichier PDF et refermer acrobat par macro [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Août 2009
    Messages
    817
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 817
    Par défaut Imprimer un fichier PDF et refermer acrobat par macro
    Bonjour,

    J'ai fait un petit utilitaire qui permet d'imprimer un fichier PDF depuis Excel en me basant sur la fonction Silkyroad
    https://excel.developpez.com/faq/ind...ion#ImprimePDF

    Cela fonctionne, cependant j'ai une fenetre blanche acrobat reader qui apparait et qui reste ouverte avec le sablier, il faut donc que l'utilisateur la referme.
    j'ai essayé d'ajouter un send key
    sans succès
    Merci pour votre aide
    Denis

  2. #2
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, depuis Office 2007 SP2 le format PDF est inclus en natif dans Office. A voir si tu veux manipuler des PDFs : Manipulations des PDF via Excel / Acrobat / PDFCreator / xPDF. Sinon tu peux passer par un kill.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub KillAcroRD32()
    Dim RetVal As Long
        RetVal = Shell("Taskkill /im AcroRd32.exe /f", 0)
    End Sub

  3. #3
    Membre éclairé
    Inscrit en
    Août 2009
    Messages
    817
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 817
    Par défaut
    Merci Kiki,

    Le kill ne fonctionne pas.

    Quant à tes modèles, je n'ai malheuresement pas 7-zip ni la possibilité de l'installer, et je n'aime pas passer par les convertisseurs en ligne.

    Merci
    Denis

  4. #4
    Membre chevronné
    Homme Profil pro
    Alternant
    Inscrit en
    Décembre 2015
    Messages
    413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Alternant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 413
    Par défaut
    Comme l'as dit Kiki le format PDF existe en natif, autant l'utiliser

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sheets("LeNomDeLaFeuilleAImprimer").ExportAsFixedFormat Type:=xlTypePDF, Filename:=ThisWorkbook.Path & "\" & "LeNomQueTuVeuxLuiDonner.pdf" _
                        , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
                        :=False, OpenAfterPublish:=True

  5. #5
    Membre éclairé
    Inscrit en
    Août 2009
    Messages
    817
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 817
    Par défaut
    je ne souhaite pas imprimer un classeur en pdf, ca je sais faire

    je souhaite imprimer un fichier pdf présent sur un répertoire.

    Merci

  6. #6
    Membre chevronné
    Homme Profil pro
    Alternant
    Inscrit en
    Décembre 2015
    Messages
    413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Alternant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 413
    Par défaut
    Autant pour moi j'ai mal lu :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Declare Function FindExecutable Lib "shell32.dll" Alias "FindExecutableA" _
       (ByVal lpFile As String, ByVal lpDirectory As String, ByVal lpResult As String) As Long
     
    Sub ImprimerPDF()
      Dim pdfEXE$, q$
     
      Dim fichier$
      fichier = "C:\TonChemin\TonFichier.pdf"
     
      pdfEXE = CheminExe(fichier)
      If pdfEXE = "" Then
        MsgBox "Executable non trouvé.", vbCritical, "Erreur"
        Exit Sub
      End If
     
      q = """"
      Shell q & pdfEXE & q & " /s /o /h /t " & q & fichier & q, vbHide
    End Sub
     
    Function CheminExe(FichierPDF As String) As String
       Dim DossierPDF As String, sCheminExe As String, rc As Long
     
       DossierPDF = "\"
       sCheminExe = Space(255)
       rc = FindExecutable(FichierPDF, DossierPDF, sCheminExe)
       sCheminExe = Left$(sCheminExe, InStr(sCheminExe, Chr$(0)) - 1)
       CheminExe = sCheminExe
     
    End Function

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 24/11/2013, 00h56
  2. Imprimer un fichier pdf sans ouvrir acrobat
    Par llaurentt dans le forum Windows
    Réponses: 12
    Dernier message: 18/02/2008, 23h40
  3. Comment imprimer un fichier Pdf directement à partir de Delphi ?
    Par toumoham dans le forum API, COM et SDKs
    Réponses: 11
    Dernier message: 07/12/2005, 15h28
  4. [C#] Comment imprimer un fichier .pdf ?
    Par petoulachi dans le forum C#
    Réponses: 9
    Dernier message: 05/10/2005, 15h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo