Masquage des colonnes en fonction d’une valeur de cellule (Microsoft Excel)
Les excellentes capacités de mise en forme conditionnelle d’Excel vous permettent de modifier la mise en forme des cellules en fonction du contenu d’une cellule. Il n’y a malheureusement aucun moyen de masquer facilement des colonnes entières de données en fonction de la valeur d’une cellule particulière.
Cependant, vous pouvez obtenir l’effet souhaité en utilisant une macro pour analyser la cellule et ajuster l’attribut Masqué de la ligne que vous souhaitez masquer conditionnellement. La macro simple suivante, par exemple, examine le contenu de la cellule B4 et, si la cellule contient 0, masque la colonne H. Si la cellule B4 ne contient pas 0, la colonne H est affichée.
Sub HideColumn1() If Range("B4").Value = 0 Then Columns("H").EntireColumn.Hidden = True Else Columns("H").EntireColumn.Hidden = False End If End Sub
Si vous souhaitez que le masquage et l’affichage de la colonne soient effectués en temps réel, vous pouvez utiliser la version suivante de la macro. Assurez-vous simplement de placer cette version dans la fenêtre de code de la feuille de calcul sur laquelle vous souhaitez qu’elle fonctionne.
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Range("B4").Value = 0 Then Columns("H").EntireColumn.Hidden = True Else Columns("H").EntireColumn.Hidden = False End If End Sub
Notez que les tripes des deux macros sont les mêmes. La seule différence est que la deuxième version est déclenchée par un événement dans Excel – le changement de la cellule actuellement sélectionnée. Cela signifie que chaque fois que vous passez d’une cellule à une autre, la valeur de B4 est vérifiée et la colonne H est soit masquée, soit non masquée.
S’il est possible que le contenu de la cellule B4 soit vide, il est possible qu’Excel interprète ce vide comme une valeur nulle. Dans ce cas, vous pouvez modifier un peu la macro pour qu’elle vérifie la présence d’une cellule vide.
Sub HideColumn2() Dim rCell As Range Set rCell = Range("B4") Columns("H").EntireColumn.Hidden = False If (Not IsEmpty(rCell)) And (IsNumeric(rCell) And (rCell.Value = 0) Then Columns("H").EntireColumn.Hidden = True End If End Sub
Cette version de la macro vérifie en fait trois conditions: que B4 n’est pas vide, qu’il contient une valeur numérique et que la valeur est 0. Si ces trois conditions sont remplies, la colonne H est masquée.
_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 (3283) 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:
link: / excelribbon-Hiding_Columns_Based_on_a_Cell_Value [Masquage des colonnes en fonction d’une valeur de cellule]
.