Problème impression fichier pdf (fonctionne avec fichier txt)

Bonjour,

Je veux réaliser un code qui imprime tous les fichiers pdf d'un répertoire.

Mon code fonctionne très bien si je remplace pdf par txt. Mais je ne comprends pas pourquoi, lorsque je le fais sur des fichiers pdf, cela ne lance pas l'impression.

Je précise que c'est une impression avec une imprimante, et pas en pdf.

Pour l'exemple, j'ai testé avec mon bureau, où j'ai 1 fichier test.pdf, et 1 fichier test.txt. Il n'y a aucun caractère spécial, ni rien, dans les noms des fichiers, qui sont les mêmes sauf l'extension.

Sub Impression()
    Dim chemin As String
    Dim fichiers As String
    Dim monApplication As Object
    Dim fichierAImprimer As Variant

        chemin = "C:\Users\xxx\Desktop\"
        fichiers = Dir(chemin & "*.pdf") ' fonctionne si ici je mets .txt au lieu de .pdf
        fichierAImprimer = chemin & fichiers
        Do While fichiers <> ""

            Set monApplication = CreateObject("Shell.Application")
            monApplication.Namespace(0).ParseName(fichierAImprimer).InvokeVerb ("Print")
            Set monApplication = Nothing

            fichiers = Dir
        Loop
End Sub

J'ai cherché en ligne, mais n'arrive pas à trouver de réponse à mon problème.

Est-ce que quelqu'un aurait une idée ? Je bloque complètement.

Merci beaucoup à ceux qui chercheront

Bonjour

Un code trouvé sur internet a tester

Option Explicit

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

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

Sub ImprimerFichierPDF()
    Dim x As Long, Chemin_Fichier As String, Nom_Fichier As String

     Chemin_Fichier = "C:\Users\maison\Desktop\Nouveau dossier\"
    x = FindWindow("XLMAIN", Application.Caption)
    Nom_Fichier = Dir(Chemin_Fichier & "*.PDF")
    'boucle nom de fichier PDF
    Do While Nom_Fichier <> ""
        ShellExecute x, "print", Chemin_Fichier & Nom_Fichier, "", "", 1
        Nom_Fichier = Dir
    Loop
End Sub

Merci pour votre réponse.

Ce code fonctionne bien sur les txt, mais toujours pas sur les pdf.

Je suis sur un réseau sécurisé, avec pas mal de particularités. Cela peut avoir une incidence ?

Je précise tout de même que j'arrive à lancer l'impression des pdf à la main, mais pas avec une macro...

Une idée ?

Je viens de trouver la solution !

Cela ne vient pas du code vba, ni du réseau, mais du lecteur de pdf par défaut.

J'avais edge par défaut, et lorsque j'ai configuré adode, ça a marché...

Bon c'est un peu nul comme erreur. Mais si quelqu'un d'autre l'a, j'espère que ce topic pourra l'aider.

Rechercher des sujets similaires à "probleme impression fichier pdf fonctionne txt"