VBA : Comment masquer des lignes en fonction de critères
Vous pouvez utiliser la syntaxe suivante dans VBA pour masquer des lignes en fonction d’une valeur de cellule :
Sub HideRows()
Dim i As Integer
For i = 2 To 10
If Cells(i, 1).Value = "Mavs" Then
Cells(i, 1).EntireRow.Hidden = True
Else
Cells(i, 1).EntireRow.Hidden = False
End If
Next i
End Sub
Cette macro particulière masque toutes les lignes de la plage 2 à 10 qui ont une valeur de cellule égale à « Mavs » dans la première colonne.
Vous pouvez également utiliser la macro suivante pour afficher toutes les lignes :
Sub UnhideRows()
Rows.EntireRow.Hidden = False
End Sub
L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.
Exemple : utiliser VBA pour masquer des lignes en fonction de critères
Supposons que nous disposions de l’ensemble de données suivant contenant des informations sur divers joueurs de basket-ball :
Supposons que nous souhaitions masquer chaque ligne contenant « Mavs » dans la colonne d’équipe.
Nous pouvons créer la macro suivante pour ce faire :
Sub HideRows()
Dim i As Integer
For i = 2 To 10
If Cells(i, 1).Value = "Mavs" Then
Cells(i, 1).EntireRow.Hidden = True
Else
Cells(i, 1).EntireRow.Hidden = False
End If
Next i
End Sub
Lorsque nous exécutons cette macro, nous recevons le résultat suivant :
Notez que chaque ligne contenant « Mavs » dans la colonne de l’équipe a désormais été masquée.
Si nous le souhaitons, nous pouvons créer la macro suivante pour afficher toutes les lignes :
Sub UnhideRows()
Rows.EntireRow.Hidden = False
End Sub
Lorsque nous exécutons cette macro, nous recevons le résultat suivant :
Notez que toutes les lignes sont à nouveau affichées.
Notez que dans notre macro, nous avons spécifié For i = 2 To 10 pour masquer les lignes comprises entre 2 et 10 en fonction de critères.
N’hésitez pas à modifier ces valeurs de début et de fin pour masquer les lignes dans une plage de lignes différente.
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans VBA :
VBA : Comment appliquer une mise en forme conditionnelle aux cellules
VBA : Comment compter le nombre de lignes dans la plage
VBA : Comment compter les cellules avec un texte spécifique