Masquer ou afficher des lignes sous condition

Twixman Messages postés 8 Statut Membre -  
cs_Le Pivert Messages postés 8437 Statut Contributeur -
Bonjour,
je cherche à réaliser un tableau qui afficherait seulement les lignes concernant le jour inscrit en "E5".
J'aimerais, si c'est possible, que le déclencheur soit le mot"masquer" en colonne B, qui est le résultat d' une formule (=si).
Et tous ça automatiquement ( sans bouton)
Merci de votre aide.
https://www.cjoint.com/c/ICipQGFgXCy

Configuration: Windows / Chrome 72.0.3626.121

1 réponse

  1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Bonjour,

    a mettre dans le module de la feuille 1

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Application.Intersect(Target, Range("B:B")) Is Nothing Then
    If Target.Value = "Masquer" Then
     Rows(Target.Row & ":" & Target.Row).EntireRow.Hidden = True
       Else
       Rows(Target.Row & ":" & Target.Row).EntireRow.Hidden = False
    End If
    End If
    End Sub


    mais pour rétablir c'est manuellement ou avec une macro?

    Selection de toute la Feuille clic droit Afficher

    Ou

     Sub Retablir()
    With Sheets("Feuil1").Cells
    .EntireRow.Hidden = False
    End With
    End Sub


    0
    1. Twixman Messages postés 8 Statut Membre
       
      Bonjour Le Pivert,
      Merci.
      C'est exactement ça.
      Merci, merci pour ton aide.
      Bonne journée.
      0
    2. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      il y a aussi cela qui changera avec la cellule E5:

      Private Sub Worksheet_SelectionChange(ByVal Target As Range)
      If Not Application.Intersect(Target, Range("E5")) Is Nothing Then
      Application.ScreenUpdating = False
      For_X_to_Next_Ligne
      Application.ScreenUpdating = True
      End If
      End Sub
      Sub For_X_to_Next_Ligne()
      Dim FL1 As Worksheet, NoCol As Integer
      Dim NoLig As Long, Var As Variant
          Set FL1 = Worksheets("Feuil1")
          NoCol = 2 'lecture de la colonne B
          For NoLig = 1 To Split(FL1.UsedRange.Address, "$")(4)
              Var = FL1.Cells(NoLig, NoCol)
             If Var = "Masquer" Then
       Rows(NoLig & ":" & NoLig).EntireRow.Hidden = True
         Else
         Rows(NoLig & ":" & NoLig).EntireRow.Hidden = False
      End If
          Next
          Set FL1 = Nothing
      End Sub


      @+ Le Pivert
      0