Masquer ligne entière avec conditions

Bonjour à toutes et à tous,

Je suis novice en VBA et je cherche à masquer des lignes entières sous conditions.

Je m’explique :

Je souhaiterai que les lignes situées entre la colonne B et BJ soient cachés dès lors que la valeur de toute les cellules de la ligne sont égales à « non ».

J’ai tenté le programme suivant :

Sub hide()
Dim Row As Object
If EntireRow.Value = « non » Then
Columns(« B:BJ »).EntireColumn.Hidden = True
End If
End Sub

Et j’avoue être perdue…

Merci d’avanve pour votre aide !

Bonjour May, bonjour le forum,

Pas très clair !.. Tu parles de masquer des lignes et ton code masque des colonnes…
Si tu veux masquer les lignes dont toutes les cellules des colonnes B à BJ valent « non », essaie comme ça :

Sub Macro1()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim I As Integer 'déclare la variable I (Incrément)
Dim J As Integer 'déclare la variable J (incrément)
Dim TEST As Boolean

Set O = Worksheets("Feuil1") 'définit l'onglet O (à adapter à ton cas)
DL = O.Cells(Application.Rows.Count, "B").End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne B de l'onglet O (colonne à adapter à ton cas)
TV = O.Range("B1:BJ" & DL) 'définit la tableau des valeurs TV
For I = 1 To UBound(TV, 1) 'boucle 1 : sur toutes les lignes I du tableau des valeur TV
    TEST = False 'réinitialise la variable TEST
    For J = 1 To UBound(TV, 2) 'boucle 2 sur toutes les colonnes J du tableau des valeurs TV
        If UCase(TV(I, J)) <> "NON" Then 'condition si la donnée ligne I colonne J de TV ( convertie en majuscules) est différente de "NON"
            TEST = True 'redéfinit la variable TEST
            Exit For 'sort de la boucle 2
        End If 'fin de de la condition
    Next J 'prochaine colonne de la boucle 2
    O.Rows(I).Hidden = TEST 'affiche/masque la ligne I en fonction de la variable TEST
Next I 'prochaine ligne de la boucle 1
End Sub

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.