Masquer/afficher une ligne

Résolu
zambrya Messages postés 22 Statut Membre -  
zambrya Messages postés 22 Statut Membre -
Bonjour,

J'aurais besoin de votre aide, j'ai trouvé la macro suivante de Mike-31, qui permet de masquer les lignes quand une cellule dans la colonne M est vide:

Sub masquer_ligne_Vide()
Dim cel As Range
For Each cel In Range("M3:M100")
If cel = "0" Then
cel.EntireRow.Hidden = True
End If
Next
End Sub

Je voudrais ajouter une condition pour que la ligne s'affiche quand la cellule dans la colonne M est remplie

Merci par avance pour votre aide.

Zambrya

2 réponses

  1. Danelectro Messages postés 1844 Date d'inscription   Statut Membre Dernière intervention   375
     
    Salut,
    Peut être quelque chose comme ça ?

    Sub masquer_ligne_Vide()
    Dim cel As Range
    For Each cel In Range("M3:M100")
    If cel != "0" Then
    cel.EntireRow.Hidden = False
    End If
    Next
    End Sub
    0
    1. zambrya Messages postés 22 Statut Membre
       
      Bonjour,

      Merci pour la réponse.
      La macro fonctionne pour afficher les cellules, mais en fait je voudrait que les cellules où il y a "0" soit masquées et les cellules différente de "0" soit affichées

      Il faudrait une macro où les deux conditions soit imbriquées

      Merci

      Zambrya
      0
      1. zambrya Messages postés 22 Statut Membre > zambrya Messages postés 22 Statut Membre
         
        En gros je voudrais une formule de ce genre :

        Sub masquer_ligne_Vide()
        Dim cel As Range
        For Each cel In Range("M3:M100")
        If cel = "0" Then
        cel.EntireRow.Hidden = True
        Else : cel <> 0
        cel.EntireRow.Hidden = False
        End If
        Next
        End Sub

        Mais la ligne en gras est en rouge. Je ne sais pas comment faire le signe "différent de". Le signe "!=" ne fonctionne pas non-plus.

        Merci

        Zambrya
        0
  2. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Bonjour,

    comme cela

    Sub masquer_ligne_Vide()
    Dim cel As Range
    For Each cel In Range("M3:M100")
    If cel = "0" Then
    cel.EntireRow.Hidden = True
    ElseIf cel <> 0 Then
    cel.EntireRow.Hidden = False
    End If
    Next
    End Sub

    par contre je pense que tu devrais prévoir un bout de code pour éventuellement afficher les lignes masquées pour modifier les données

    Sub afficher()
    Cells.EntireRow.Hidden = False
    End Sub
    A+
    Mike-31

    Une période d'échec est un moment rêvé pour semer les graines du savoir.
    0
    1. zambrya Messages postés 22 Statut Membre
       
      Merci beaucoup c'est exactement ce que je voulais

      Bonne journée

      Zambrya
      0