Comment transformer 10 minutes d'Export PDF en 5 secondes avec une MACRO puissante grâce à Excel

Guide « 108 astuces pour grands débutants sur Excel ! » Offert
Booster votre productivité en téléchargeant gratuitement votre ebook PDF des meilleures astuces pour les débutants et les pros d'Excel
Excel formation - 00 Astuces - 100
 

Dans ce tutoriel, je vais vous montrer comment automatiser l’export de plusieurs feuilles de calculs en fichiers PDF séparés à partir d’Excel, grâce à une macro VBA accessible même pour un débutant.

Nous verrons tous les aspects, des fondamentaux à l’automatisation, en passant par les petites astuces qui vous feront gagner du temps à chaque utilisation.

Que vous soyez gestionnaire, commercial ou tout simplement gestionnaire d’équipe, vous pourrez gagner en efficacité tout en vous assurant un rendu propre et professionnel.

 

Téléchargement

Vous pouvez télécharger le fichier d'exemple de cet article en cliquant sur le lien suivant :

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
 

 

Tutoriel Vidéo

 

 

 

1. Présentation

 

Pour illustrer ce tutoriel, nous allons utiliser un fichier Excel dans lequel chaque feuille Excel représente les ventes d’une région (par exemple : « Nord », « Sud », « Ouest », « Est », « Centre », « Île-de-France ») :

Excel formation - 0078-MultiPDF - 01

Dans ce fichier, nous retrouvons une feuille par région, avec le nom correspondant comme nom de chaque onglet.

Excel formation - 0078-MultiPDF - 02

Cela va nous servir à bien différencier les exports selon les territoires commerciaux couverts, ce qui est fréquent dans la plupart des entreprises.

Il est important de garder la même structure d’une feuille à l’autre, car la macro VBA parcourt toutes les feuilles du classeur de la même manière.

Notre objectif sera donc de générer autant de fichiers PDF qu’il y a de feuilles (ici, une feuille = une région = un rapport PDF), chaque fichier étant nommé automatiquement et déposé dans le dossier de notre choix.

 

2. Pourquoi automatiser les exports PDF dans Excel ?

 

En général, réaliser un export PDF dans Excel n’a rien de compliqué : le menu « Fichier » > « Exporter » puis l’option « Créer un document PDF/XPS » suffisent pour obtenir un document PDF de qualité.

Excel formation - 0078-MultiPDF - 03

Mais dès qu’on a plusieurs feuilles à exporter, la tâche devient fastidieuse : il faut répéter l’opération pour chaque onglet, manuellement, et cela devient une perte de temps proportionnelle au nombre de feuilles à traiter.

C’est ici que la programmation VBA prend tout son sens. Automatiser cette opération permet non seulement de gagner du temps, mais aussi d’éviter les erreurs de manipulation (oubli d’une feuille, mauvais nommage, etc.).

Nous pouvons également configurer le nommage des fichiers PDF comme nous le souhaitons (par exemple, ajouter un horodatage pour chaque export) ou choisir de les enregistrer dans un dossier spécifique.

 

3. Mise en place de l’outil

 

Comme nous l’avons vu, pour effectuer l’export, nous allons mettre en place une petite macro VBA.

Pour commencer, nous nous rendons dans « Visual Basic » en utilisant le raccourci [Alt]+[F11].

Nous sommes alors dans l’éditeur VBA qui permet d’accéder à tout le code du classeur Excel. Prenons le temps de sauvegarder le fichier sous le format « Classeur Excel prenant en charge les macros » (.xlsm) pour ne pas perdre notre travail en cours de route.

Dans le panneau à gauche, nous effectuons un clic droit sur le nom de notre fichier, puis « Insérer » > « Module ».

Cela crée une zone dans laquelle nous pourrons écrire notre programme principal, c’est-à-dire la macro qui automatisera l’ensemble du processus d’export.

Il n’est pas nécessaire d’être un expert en programmation pour suivre : nous allons détailler ligne par ligne ce que fait la macro, afin que chacun comprenne le rôle exact de chaque commande.

Mais si vous souhaitez en savoir plus sur ce langage extrêmement puissant qu’est le VBA, vous pouvez découvrir mon livre « Apprendre le VBA pour les Grands Débutants » sur excelformation.fr.

À ce stade, nous sommes prêts à codifier le cœur de notre automatisation : la macro qui va parcourir toutes les feuilles, demander le dossier où enregistrer les PDF, puis exporter automatiquement chaque feuille comme rapport individuel.

Nous allons maintenant créer la macro qui automatise notre export PDF.

La logique principale va consister à :

  • parcourir chaque feuille,
  • construire dynamiquement le chemin de chaque fichier PDF,
  • et sauvegarder le résultat.

Pour commencer, nous allons donc créer une nouvelle macro nommée ExporterMultiPDF, qui sera chargée d’exporter chaque feuille du classeur en fichier PDF distinct, en utilisant le mot-clé « Sub », suivit du nom de la macro :

Sub ExporterRapportsRegionauxPDF()

nsuite, nous allons déclarer une première variable nommée feuille, que nous allons typer en tant que Worksheet.

 

Une variable permet de stocker une information dans la mémoire de l’ordinateur pour pouvoir ensuite la manipuer.

Elle représentera ici, tour à tour, chacune des feuilles du classeur lors de notre boucle.

    Dim feuille As Worksheet

Nous déclarons également une seconde variable cheminFichier de type String.

Elle nous servira à construire le chemin complet du futur fichier PDF pour chaque feuille.

    Dim cheminFichier As String

Ensuite, nous mettons en place une boucle For Each qui va parcourir toutes les feuilles du classeur.

À chaque passage dans la boucle, la variable feuille pointera vers une feuille différente.

    For Each feuille In  ThisWorkbook.Worksheets

À l’intérieur de cette boucle, nous construisons le chemin complet du PDF à générer.

L’idée est de :

  • partir du chemin complet du fichier Excel (ThisWorkbook.FullPath),
  • ajouter " - ",
  • puis le nom de la feuille,
  • enfin l'extension .pdf.

Attention : FullPath inclut déjà le nom du classeur avec son extension.

Donc le PDF s’appellera quelque chose comme :

« MonClasseur.xlsx - Feuille1.pdf »

        cheminFichier = ThisWorkbook.FullPath & " -  " & feuille.Name & ".pdf"

Une fois le chemin déterminé, on exporte la feuille en PDF grâce à la méthode ExportAsFixedFormat.

Ici :

  • Type:=xlTypePDF indique qu’on veut un PDF
  • Filename:=cheminFichier précise où enregistrer le fichier
        feuille.ExportAsFixedFormat Type:=xlTypePDF,  Filename:=cheminFichier

Nous terminons la boucle grâce à l’instruction Next, qui passe à la feuille suivante.

    Next

Une fois que toutes les feuilles ont été exportées, nous affichons un message à l’utilisateur pour confirmer la bonne fin de l’opération.

    MsgBox "Tous les rapports ont été exportés en PDF  avec succès."

 

4. Utilisation

 

Pour utiliser la macro, il suffit de la lancer directement depuis l’éditeur VBA.

Nous pouvons également l’associer à un bouton personnalisable dans l’interface Excel pour la rendre accessible aux utilisateurs.

Pour cela, nous retournons sur la feuille Excel, nous insérons une zone de texte dans laquelle nous saisissons le texte « Exporter les rapports ».

Ensuite, nous effectuons un clic droit sur celui-ci afin de cliquer sur « Affecter une macro ».

Il suffit ensuite d’associer la macro « ExporterMultiPDF » créée précédemment.

Excel formation - 0078-MultiPDF - 04

Pour aller plus loin, il serait également possible d’améliorer la macro pour n’exporter qu’un sous-ensemble de feuilles, par exemple en n’exportant que celles qui comportent “Rapport” dans leur nom (voir opérateur « InStr » en VBA).

Mais pour la grande majorité des besoins, la version de base que nous venons de coder est à la fois robuste et très simple d’utilisation.

Si vous souhaitez personnaliser davantage la macro, il est possible d’ajouter de nouveaux paramètres, comme la génération automatique d’un e-mail prêt à l’envoi, la fusion de certains rapports dans un seul PDF, ou bien la sécurisation par mot de passe. L’automatisation Excel n’a pour limite que votre imagination.

N’hésitez surtout pas à enregistrer votre macro dans le « Classeur personnel de macros » si vous souhaitez la réutiliser facilement dans tous vos fichiers. Il vous suffira alors d’y faire appel depuis n’importe quel classeur en quelques secondes.



Articles qui pourraient vous intéresser

STOP aux listes déroulantes limitées ! Sélectionnez PLUSIEURS valeurs dans UNE SEULE cellule Excel
Comment transformer du texte brut en tableau structuré sur Excel avec Power Query
Comment compter et additionner par couleur de cellule sans VBA sur Excel
Comment évaluer et extraire des formules Excel avec des fonctions personnalisées ?
Astuce incroyable : Copier uniquement les cellules visibles dans Excel
Comment créez des graphiques Excel INTERACTIFS sans VBA avec les contrôles dynamiques ?
Comment utiliser des boutons pour sélectionner des données dans Excel (sans VBA)
Comment créer des graphiques Excel qui changent d'un simple clic et sans VBA (la technique que 99% des utilisateurs ignorent)
Comment appliquer un format sur plusieurs feuilles Excel en un clic
Comment créer des étiquettes de légendes dynamiques pour sublimer vos graphiques Excel
Découvrez comment mélanger aléatoirement une liste dans Excel (en moins d’une seconde !)
Les 10 erreurs FATALES qui détruisent vos données sur Excel (et comment les éviter)

Contact - Plan du site - À propos - Contact

© Excelformation.fr 2018-2025 - Excel, simplement

Haut de la page

Excelformation.fr propose de nombreuses formations pratiques et gratuites sur Microsoft Excel : des cours pour apprendre à structurer et analyser les données, des tutos sur les fonctions avancées, les formules et les formules avancées d'Excel, les formules matricielles, les mise-en-formes conditionnelles, les graphiques Excel (xls, xlsx, xlsm,…). Des tutoriels pour apprendre à automatiser les tâches répétitives (via des macro-commandes en VBA) de vos classeurs Excel.