Imprimer un fichier PDF avec VBA dans Excel



Saviez-vous qu'il était possible d'imprimer des fichiers autres qu'Excel directement à partir de VBA? Vous pouvez imprimer des fichiers PDF, des fichiers texte (.txt, .log, …) etc. grâce aux quelques lignes de code VBA.

Très utile si vous voulez imprimer des factures, des fiches de paie etc. en PDF à partir de votre fichier Excel contenant des données.

La seule chose dont vous avez besoin est le chemin complet (dossier & nom du fichier) du fichier à imprimer.

Code VBA pour imprimer un fichier PDF

Voici le code de base qui imprime un fichier PDF. Il vous suffit de copier ce code VBA dans un Module de votre projet et de changer le chemin vers le fichier à imprimer:

Sub ImpressionDeFichier()
'par Excel-Malin.com ( https://excel-malin.com )
Dim FichierAImprimer As String

FichierAImprimer = "C:\MonDossier\MonFichier.pdf" '<-- chemin complet du fichier à imprimer
    CreateObject("Shell.Application").Namespace(0).ParseName(FichierAImprimer).InvokeVerb ("Print")
End Sub

 
Attention: n'oubliez pas que le code va utiliser l'imprimante qui est définie comme principale dans votre système.
 


 

Fonction VBA générique pour l'impression des fichiers

Pour rendre ce code plus flexible et plus facilement utilisable dans diverses situations, nous pouvons le transformer en une FONCTION VBA qui utilisera un paramètre: le chemin complet vers le fichier. Ainsi, il n'y aura pas de mention d'un fichier particulier dans votre code. C'est plus propre, plus pratique et surtout très facile à utiliser dans des boucles.

Voici donc le code de la fonction

Public Function ImprimerFichier(FichierAImprimer As String)
'par Excel-Malin.com ( https://excel-malin.com )

    CreateObject("Shell.Application").Namespace(0).ParseName(FichierAImprimer).InvokeVerb ("Print")
End Function

 

Utilité de l'impression dans des applications VBA en Excel

Vous vous demandez peut-être quel est l'intérêt d'imprimer des fichiers PDF à partir d'Excel

Imaginez que vous ayez un fichier Excel de comptabilité. Il suffit d'y ajouter les noms (et éventuellement les dossiers) de fichiers de factures. Ensuite, vous pouvez, avec une simple utilisation de boucles, imprimer par exemple toutes les factures pour une date spécifique. Ou pour un mois donné. Ou encore toutes les factures d'un fournisseur donné. Idem pour les factures émises: vous pouvez facilement imprimer toutes les factures envoyés (ou à envoyer) à un client particulier.

Excel: imprimer des fichiers PDF avec VBA

De même pour la gestion du personnel: vous voulez imprimer toutes les fiches de paie d'un employé? Ou les fiches de paie de janvier de tous les employés? Rien de plus facile en utilisant le code ci-dessus…

Sinon, cette fonction a une autre utilité: elle vous permettra, par exemple, d'imprimer tous les fichiers dans un dossier particulier. Ou par exemple tous les fichiers PDF dans un dossier particulier. Les combinaisons sont presque infinies.

Plus de détails sur la méthode .InvokeVerb sur le site de Mircosoft

 

4 0

 



Laissez un commentaire

Votre adresse de messagerie ne sera pas publiée.