Certaines tâches répétitives gagnent à être automatisées. Il en est ainsi des impressions. Il est en effet fréquent d’avoir à imprimer de manière récurrente des feuilles de travail. Sur des séries importantes, cette tâche se révèle rapidement fastidieuse. Or elle est aisément automatisable à l’aide de quelques lignes de code VBA.
L’instruction VBA qui permet à Excel d’imprimer est .PrintOut, elle s’utilise ainsi :
ActiveWorkbook.Sheets(1).PrintOut
Dans cet exemple, Excel va imprimer la première feuille (la plus à gauche) du classeur en cours.
Paramètres de l’instruction .PrintOut :
| Nom | Obligatoire/Facultatif | Type de données | Description |
|---|---|---|---|
| from | Facultatif | Variant | Numéro de la page à partir de laquelle commencer l’impression. Si cet argument n’est pas défini, l’impression commence au début. |
| Vers | Facultatif | Variant | Numéro de la dernière page à imprimer. Si cet argument n’est pas défini, l’impression se termine à la dernière page. |
| Copies | Facultatif | Variant | Nombre de copies à imprimer. Si cet argument n’est pas défini, une seule copie est imprimée. |
| Preview | Facultatif | Variant | True pour que Microsoft Excel affiche l’aperçu avant impression avant d’imprimer l’objet. False (ou non défini) pour imprimer l’objet immédiatement. |
| ActivePrinter | Facultatif | Variant | Définit le nom de l’imprimante active. |
| PrintToFile | Facultatif | Variant | True pour imprimer dans un fichier. Si PrToFileName n’est pas défini, Microsoft Excel invite l’utilisateur à entrer le nom du fichier de sortie. |
| Collate | Facultatif | Variant | True pour assembler plusieurs copies. |
| PrToFileName | Facultatif | Variant | Si PrintToFile est défini sur True, cet argument spécifie le nom du fichier dans lequel vous voulez imprimer. |
| IgnorePrintAreas | Facultatif | Variant | True pour ignorer les zones d’impression et imprimer l’objet entier. |
Source : https://msdn.microsoft.com/fr-fr/library/office/ff838253.aspx
A titre d’illustration, voici un programme qui n’imprime que les feuilles de calcul du classeur en cours qui répondent à un critère déterminé. Petit raffinement complémentaire, ce programme change la couleur des onglets imprimés pour les identifier visuellement.
Sub Traite_OngletsNonVides()
Dim i As Integer
Const CelluleATester = "F28"
With ActiveWorkbook
For i = 1 To .Sheets.Count - 1
With .Sheets(i)
If .Range(CelluleATester).Value <> 0 Then
With .Tab
.Color = 5296274
.TintAndShade = 0
End With
.PrintOut Copies:=2
Else:
With .Tab
.ThemeColor = xlThemeColorAccent6
.TintAndShade = 0.799981688894314
End With
End If
End With
Next i
End With
End Sub
Pour résumer, le programme passe en revue toutes les feuilles de calcul du classeur en cours (ActiveWorkbook) à l’aide de la boucle compteur For… To… Next (sauf la dernière, d’où le -1) : si le contenu de la cellule F28 (constante CelluleATester) est différent de 0 (zéro), l’onglet est coloré en vert et la feuille est imprimée (.PrintOut) en deux exemplaires (Copie:=2). Ceci fait, le programme passe à la feuille suivante (Next).
Il ne reste plus qu’à sauvegarder le classeur et à affecter la macro à un bouton de commande.
Approfondir le sujet : Programmer en VBA / Initiation au langage Basic / Créez votre premier programme VBA avec l’enregistreur de macros
Derniers articles parBenoît RIVIERE (voir tous)
- Analyse des données comptables (FEC) : analyse de la conformité comptable des transactions et de leur dénouement - dimanche 23 novembre 2025
- L’AMF et l’AFA appellent à la vigilance sur le risque de corruption par des réseaux criminels de personnes ayant accès à des informations privilégiées - lundi 4 août 2025
- Détecter les inversions HT/TVA avec ANA-FEC2 - jeudi 31 juillet 2025
- Analyse de FEC en ligne avec ANA-FEC2 (manuel d’utilisation) - mardi 29 juillet 2025
- Rapport AFA 2024 : les contrôles comptables à ne pas négliger - samedi 5 juillet 2025



Pingback: 10 ans – Audit & Systèmes d'Information
Pingback: Meilleurs voeux pour 2022 - Audit & Systèmes d'Information