Masquer des ligne si valeur d'une cellule à Oui

LaetitiaG56 -  
via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous

Dans mon onglet 2 (feuil2), je souhaite :
- si F22 = oui alors masquer les lignes 24 à 27
- si F22 = non alors masquer la ligne 23

Pourriez vous m'aider ?
J'ai regardé les forum mais étant novice, je n'y suis pas parvenue.

Merci

Configuration: Windows / Internet Explorer 11.0

2 réponses

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

    en vba aller sur la feuille2 et faire Alt F11 pour accéder à l'éditeur et mettre ce code qui se déclenchera à chaque changement de la feuille2:

    Option Explicit
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Range("F22").Value = "OUI" Then
    Rows("23").EntireRow.Hidden = False
    Rows("24:27").EntireRow.Hidden = True
    ElseIf Range("F22").Value = "NON" Then
    Rows("24:27").EntireRow.Hidden = False
     Rows("23").EntireRow.Hidden = True
    End If
    End Sub
    


    enregistrer sous: classeur prenant en charge les macros

    --
    @+ Le Pivert
    0
  2. via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonjour Laetitia

    Possible :

    - soit par formule et filtrage:
    Dans une colonne inutilisée à la ligne 23 mettre la formule =SI($F$22="non";"x";"")
    à la ligne 24 mettre la formule =SI($F$22="oui";"x";"") et étirer la formule jusqu'à la ligne 27
    Filtrer ensuite le tableau sur cette colonne avec condition x

    - soit par macro
    macro à mettre dans un module de l'éditeur VBA :
    Sub masquer()
    
    Rows("23:27").Select
    Selection.EntireRow.Hidden = False
    
    If Range("F22") <> "oui" And Range("F22") <> "non" Then Exit Sub
    
    If Range("F22") = "oui" Then
    Rows("23:23").Select
    Else
    Rows("24:27").Select
    End If
    
    Selection.EntireRow.Hidden = True
    End Sub

    à lancer depuis Développeur dans le ruban ou depuis un bouton

    Cdlmnt
    Via
    0