Bonjour à tous;

Une aide pour améliorer le code joint.
Pour cacher des lignes de plages précises,,,, sauf si la cellule de la colonne C dans la ligne supérieure est <> de " ". Voici un code qui marche, mais saccade.
Est-il possible de faire mieux, ou d'accélérer en évitant le code qui affiche toutes les lignes avant de les cachées.

Pour être honnête, je ne suis pas l'auteur de ce code.
Je remercie par avance le ou les personnes qui veulent bien m'aider.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Sub MasquerLignes()
    Dim lgn, i%, j%, listLn$
    lgn = Split("C33:C41 C45:C48 C52 C58:C61 C66:C69 C75 C80 C85 88:227")
    With Worksheets("Ligne A")
        .Unprotect
        .Rows.Hidden = False
        For i = 0 To UBound(lgn)
            With .Range(lgn(i))
                For j = 1 To .Rows.Count
                    If .Cells(j - 1, 1) = "" Then listLn = listLn & " " & .Cells(j, 1).Row
                Next j
            End With
        Next i
        lgn = Split(LTrim(listLn))
        Application.ScreenUpdating = False
        For i = 0 To UBound(lgn)
            .Rows(lgn(i)).Hidden = True
        Next i
        .Protect
    End With
End Sub