Méthode la plus simple pour imprimer un fichier PDF directement depuis une

Bonjour à tous, j'ai parcouru beaucoup de sujet pour parvenir à cela et trouvé différents codes mais je ne maitrise pas tout ce qui s'y trouve et je n'y parviens pas

j'ai testé :

Dim FichierAImprimer As Variant

fichieraimprimer=fichiervalidation
CreateObject("Shell.Application").Namespace(0).ParseName(Fichieraimprimer).InvokeVerb ("Print")

j'imagine qu'il me manque des déclarations, j'ai aussi testé :

        Declare PtrSafe Function FindWindow Lib "user32" _
            Alias "FindWindowA" ( _
            ByVal lpClassName As String, _
            ByVal lpWindowName As String) As LongPtr

        Private Declare PtrSafe Function ShellExecute Lib _
            "shell32.dll" Alias "ShellExecuteA" ( _
            ByVal hwnd As LongPtr, ByVal lpOperation As String, ByVal lpFile As String, _
            ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As LongPtr

dim x as long
    x = FindWindow("XLMAIN", Application.Caption)

    ShellExecute x, "print", FichierValidation, "", "", 1

j'ai une incompatibilité de type avec x

Je précise que dans tous les cas la variable "fichiervalidation est obtenur par un msoFileDialogFilePicker et est un string

Merci d'avance de votre aide pour m'aider à mieux maitriser cette partie

Bonjour,

"Méthode la plus simple pour imprimer un fichier PDF directement depuis une" depuis une QUOI

Vous relisez vos demandes parfois avant de publier

Bonsoir @JExceL2fr, en vertu de l'article 11, merci de votre remarque.

Impossible de modifier le titre du tel, limitation du nombre de caractères ou du tel je regarde ça quand je suis sur le PC

Dans l'attente titre complet :

Méthode la plus simple pour imprimer un fichier PDF directement depuis une macro excell

Bonne soirée

Bonsoir,

Un essai avec cette macro toute simple

Mais cette méthode ouvre juste le PDF avec le lecteur par défaut — elle n'imprime pas directement (il faudrait ensuite que l'utilisateur clique sur Imprimer).

Sub ImprimerPDF()
    Dim CheminFichier As String
    CheminFichier = "C:\Chemin\Vers\TonFichier.pdf"
    Shell "cmd /c start /min """" """ & CheminFichier & """", vbHide
End Sub

Ou alors cette méthode qui imprime directement ton fichier désigné en 2

Sub ImprimerPDF_Forcé()
    Dim cheminLecteur As String
    Dim cheminPDF As String
    Dim commande As String
    ' 1. Ton lecteur PDF ici (modifie le chemin si besoin)
    cheminLecteur = """C:\Program Files\Adobe\Acrobat DC\Acrobat\Acrobat.exe"""  
    ' 2. Ton fichier PDF à imprimer
    cheminPDF = """C:\Ton\Chemin\TonFichier.pdf"""  
    ' 3. Construire la commande d'impression
    commande = cheminLecteur & " /p /h " & cheminPDF
    ' 4. Lancer l'impression
    Shell commande, vbHide
End Sub 

Slts

Bonsoir,

Cette instruction devrait suffire :

CreateObject("Shell.Application").ShellExecute FichierValidation, , , "print", 0

Bonjour,

Je n'ai pas d'imprimante alors je ne peux pas tester mais est-ce que ceci te conviendrait ?

Dans ce code le chemin du fichier à imprimer est dans la variable "NomFichier". Je te conseille d'essayer ce code en remplaçant cette valeur par un fichier de chez toi et si OK il ne te restera plus qu'à adapter ce code puisque toi tu utilises la chaine résultante de msoFileDialogFilePicker.

Option Explicit
Sub choixFichier()

Dim fichiervalidation As String

With Application.FileDialog(msoFileDialogFilePicker)

    .AllowMultiSelect = False

    If .Show Then

        fichiervalidation = .SelectedItems(1)

    Else

        MsgBox "Aucun fichier sélectionné", VBCritical, "Pas de fichier"

        Exit Sub

    End If

End With

'pour info vérification du contenu de la variable
MsgBox MonChemin, VBIformation, "Fichier sélectionné :"

End Sub

Merci Beaucoup @thev, ça fonctionne bien

mon code ionitial était :

CreateObject("Shell.Application").Namespace(0).ParseName(Fichieraimprimer).InvokeVerb ("Print")

pour ma maitrise de cette ionstruction et ne pas me contenter de recopier qu'est ce qui fait que par rapport àla tienne ça ne fonctionnait pas

CreateObject("Shell.Application").ShellExecute FichierValidation, , , "print", 0

Merci également à tous les autres pour vos propositions

Rechercher des sujets similaires à "methode simple imprimer fichier pdf directement"