Theresa se demande s’il existe un moyen de formater une cellule de sorte que si le contenu de la cellule répond à certains critères, une feuille de calcul spécifique est automatiquement imprimée. La réponse courte est non, il n’y a aucun moyen d’utiliser le formatage pour atteindre cet objectif. Vous pouvez cependant utiliser une macro de gestionnaire d’événements pour effectuer l’impression.

Par exemple, l’un des gestionnaires d’événements pris en charge par Excel est déclenché chaque fois que quelque chose dans le classeur est modifié. Vous pouvez créer un gestionnaire d’événements qui examine quelle cellule a été modifiée. S’il s’agit d’une cellule spécifique et si cette cellule contient une valeur particulière, une feuille de calcul peut être imprimée.

Private Sub Worksheet_Change(ByVal Target As Range)

Dim targCell As Range     Set targCell = Worksheets(1).Range("B2")



If Not Application.Intersect(Target, targCell) Is Nothing Then         If targCell.Value = 1001 Then             Worksheets(1).PrintOut         End If     End If End Sub

Cette macro examine le contenu de la cellule B2. Si le contenu de la cellule est modifié et si la cellule contient la valeur 1001, la feuille de calcul est automatiquement imprimée.

Bien sûr, vous souhaiterez peut-être que le contenu d’une cellule particulière contrôle ce qui est imprimé lorsque quelqu’un choisit réellement d’imprimer. Par exemple, si l’utilisateur choisit d’imprimer, vous souhaiterez peut-être examiner le contenu d’une cellule (comme E2) et, en fonction du contenu de cette cellule, modifier automatiquement ce qui est imprimé. La macro suivante adopte cette approche:

Private Sub Workbook_BeforePrint(Cancel As Boolean)

Application.EnableEvents = False     Select Case Worksheets("Sheet1").Range("E1")

Case 1             Worksheets("Sheet1").PrintOut         Case 2             Worksheets("Sheet2").PrintOut         Case 3             Worksheets("Sheet3").PrintOut         Case 4             Worksheets("Sheet4").PrintOut         Case Else             ActiveSheet.PrintOut     End Select     Cancel = True     Application.EnableEvents = True End Sub

La macro imprime Sheet1, Sheet2, Sheet3 ou Sheet4 selon que la cellule E2 contient 1, 2, 3 ou 4.

_Note: _

Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.

lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur].

ExcelTips est votre source pour une formation Microsoft Excel rentable.

Cette astuce (3832) s’applique à Microsoft Excel 97, 2000, 2002 et 2003. Vous pouvez trouver une version de cette astuce pour l’interface ruban d’Excel (Excel 2007 et versions ultérieures) ici:

lien: / excelribbon-Printing_Based_on_Cell_Contents [Impression basée sur le contenu de la cellule].