Macro affiche ou masque des lignes avec un bouton

Hellen, bonjour

Pour afficher uniquement les lignes qui n’ont pas la valeur « OK » en colonne i , j’ai récupéré le code suivant
Sub MasquerLigneSelonValeurOK()

Debut = 3Fin = 85ColNb = 9For i = Debut To Fin If Cells(i, ColNb).Value = "OK" Then Cells(i, ColNb).EntireRow.Hidden = True Else Cells(i, ColNb).EntireRow.Hidden = False End IfNext I End Sub
J’y ai ajouté un bouton de contrôle et je suis déjà bien contente à se stade ! Puisque ça fonctionne

Ce que je n'ai pas su faire
: c'est une macro pour réafficher toutes les lignes sauf celles qui sont totalement vides
pourriez vous m’offrir ces quelques ligne ?

peut-on commander avec le même bouton pour afficher - masquer ? ou Faudra t’il créer un deuxième bouton de commande

Un grand merci d'avance

Salut,

Le code ci-dessous devrait faire l'affaire :

Sub MasquerLigne()

For i = 3 To 85
    If WorksheetFunction.CountA(Range("A" & i & ":XFD" & i)) = 0 Then
        Range("A" & i).EntireRow.Hidden = True
    Else
        Range("A" & i).EntireRow.Hidden = False
    End If
Next i

End Sub

Sans pouvoir savoir toutefois si tes données de la ligne 3 à la ligne 85 correspondent réellement à ton fichier, puisque provenant apparemment d'un autre fichier.

Cordialement.

Bonjour,

Yvouille, plutôt que de sélectionner la plage, prend la ligne complète Rows(i), c'est plus simple.

Sub MasquerLigne()
    For i = 1 To 85
        If WorksheetFunction.CountA(Rows(i)) = 0 Then
            Rows(i).Hidden = True
        Else
            Rows(i).EntireRow.Hidden = False
        End If
    Next i
End Sub

Tu peux aussi faire plus court en mettant directement le résultat du comptage à la place de True ou False, en effet si le résultat de (WorksheetFunction.CountA(Rows(i)) = 0) renverra Vrai ou Faux :

Sub MasquerLigne()
    For i = 1 To 85
        Rows(i).Hidden = (WorksheetFunction.CountA(Rows(i)) = 0)
    Next i
End Sub

Benead

Rechercher des sujets similaires à "macro affiche masque lignes bouton"