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:

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

 

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 Microsoft

Pour aller plus loin en VBA

Pour terminer, voici quelques articles qui pourraient vous être utiles lors de l'élaboration de vos macros VBA…

 

Laissez un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

20 commentaires sur “Imprimer un fichier PDF avec VBA dans Excel”