Macro masquer ligne

Bonjour à tous !

J'aimerai savoir si vous connaissez un code VBA pour masquer les lignes dans le cas ou les cellules de celle-ci seraient barrées? =>

Pour toute les lignes de la feuille, si les cellules sont rayés, alors on masque la ligne.

Je ne sais pas si je suis très clair....

Je vous joint un fichier , même si je ne suis pas sur qu'il soit très utile dans le cas présent.

Je vous remercie d'avance pour l'aide apportée !

manoss

38test.xlsm (139.29 Ko)

Bonjour manoss76, le forum,

https://forum.excel-pratique.com/excel/masquer-ligne-barree-t19078.html

Sub Masqueligne()

        'Dernière ligne remplie de la colonne A
       Lg = Range("A65536").End(xlUp).Row

        'De la ligne 4 à la dernière ligne remplie
       For i = 4 To Lg

        'Si la cellule Ai à la police barrée = la ligne est masquée
       If Cells(i, 1).Font.Strikethrough = True Then Rows(i).Hidden = True

        'Ligne suivante
       Next

    End Sub

Cordialement,

Bonjour,

Essaye ça :

Sub masguer()
    derLig = Range("A" & Rows.Count).End(xlUp).Row
    For i = 3 To derLig
        If Cells(i, 1).Font.Strikethrough = True Then
            Rows(i).EntireRow.Hidden = True
        End If
    Next i
End Sub

Merci les gars !

Si je veux pouvoir cliquer sur un bouton pour masquer les lignes, et recliquer dessus pour démasquer les lignes, la macro reste du même type?

Cordialement

Bonjour manoss76,

pour démasquer les lignes

Pour démasquer, il faut remplacer

 Rows(i).EntireRow.Hidden = True

par

 Rows(i).EntireRow.Hidden = False

Cordialement,

Je pensais pouvoir adapter la macro pour = cliquer sur un bouton => masque la ligne. Reclique sur le même bouton => démasque les lignes. Est-ce possible?

Cordialement

Re,

A tester:

Sub MasqueAfficheLigne()

            'Dernière ligne remplie de la colonne A
             Lg = Range("A65536").End(xlUp).Row

            'De la ligne 4 à la dernière ligne remplie
             For i = 4 To Lg

            'Si la cellule Ai à la police barrée = la ligne est masquée
             If Cells(i, 1).Font.Strikethrough = True Then
             Rows(i).Hidden = Not (Rows(i).Hidden) 'masque/affiche
            'Ligne suivante

             End If
             Next
    End Sub

@+

Edit: une autre version avec bouton à bascule

61test2.xlsm (144.64 Ko)

Au top ca fonctionne parfaitement !

Merci à tous !

Cordialement

Bonjour

a bon ses fini voila une autre astuce

Sub masguer()
derLig = Range("A" & Rows.Count).End(xlUp).Row
If Range("D1").Value = 1 Then
    Cells.EntireRow.Hidden = False
    Range("D1").Value = 2
    Exit Sub
  Else
   Range("D1").Value = 1
End If
   For i = 3 To derLig
      If Cells(i, 1).Font.Strikethrough = True Then
         Rows(i).EntireRow.Hidden = True
      End If
   Next i
End Sub

A+

Maurice

Rechercher des sujets similaires à "macro masquer ligne"