XL 2013 Simplifier le code IF imbriqué

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

chaelie2015

XLDnaute Accro
Bonjour FORUM
Je souhaite simplifier ce code de if imbriqués pour afficher et masquer les lignes selon le contenus des cellules (liste de validation).

SI AE20 =VISA CONFORME alors Afficher seulement la ligne 21
SI AE20 = REFUS DE VISA alors afficher les lignes 21 et 79
SI AE20 = RESERVES SUSPENSIVES (Secrétariat) alors afficher les lignes de 21 à 26
SI AE20 = RESERVES SUSPENSIVES (En séance) alors afficher la ligne 21 ET les lignes de 27 à 34

Et dans ce cas ou la cellule AE20 = RESERVES SUSPENSIVES (En séance) et on aura 3 cas dans la cellule AE33 :
SI AE 33 =VISA CONFORME alors Afficher alors afficher les lignes de 27 à 34
SI AE 33 = RESERVES SUSPENSIVES (Secrétariat) alors afficher les lignes de 34 à 39
SI AE 33 = RESERVES SUSPENSIVES (En séance) alors afficher les lignes de 40 à 47

Et dans ce cas ou la cellule AE20 = RESERVES SUSPENSIVES (En séance) et AE33 = RESERVES SUSPENSIVES (En séance) on aura 3 cas dans la cellule AE46 :
SI AE 46 =VISA CONFORME alors afficher les lignes de 27 à 34 et les lignes de 40 à 47
SI AE 46= RESERVES SUSPENSIVES (Secrétariat) alors afficher les lignes de 27 à 34 et les lignes de 40 à 47 et les lignes de 48 à 52
SI AE 46 = RESERVES SUSPENSIVES (En séance) alors afficher les lignes de 27 à 34 et les lignes de 40 à 47 et les lignes de 53 à 60

Et ainsi de suite
Merci
 

Pièces jointes

Dernière édition:
Bonsoir Chaelie,
A défaut de supprimer les IF, ou plus exactement les CASE, car je ne vois pas la logique dans les N° de lignes, on peut au moins simplifier l'écriture pour être moins indigeste et plus clair, avec :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    Application.ScreenUpdating = False
    Rows("21:79").EntireRow.Hidden = True
'1er passage
    Select Case Range("$AE$20").Value
        Case ("VISA CONFORME"):                                     Masque "21:21"
        Case ("REFUS DE VISA"):                                     Masque "21:21,79:79"
        Case ("RESERVES SUSPENSIVES (Secrétariat)"):                Masque "21:26"
        Case ("RESERVES SUSPENSIVES (En séance)"):                  Masque "21:21,27:34"
'2éme passage
        Select Case Range("$AE$33").Value
            Case ("VISA CONFORME"):                                 Masque "27:34"
            Case ("RESERVES SUSPENSIVES (Secrétariat)"):            Masque "34:39"
            Case ("RESERVES SUSPENSIVES (En séance)"):              Masque "40:47"
'3 éme passage
            Select Case Range("$AE$46").Value
                Case ("VISA CONFORME"):      Masque "27:34,40:47"
                Case ("RESERVES SUSPENSIVES (Secrétariat)"):        Masque "27:34,40:52"
                Case ("RESERVES SUSPENSIVES (En séance)"):          Masque "27:34,40:47,53:60"
            End Select '3émé passage
        End Select '2éme passage
        Case Else
              Rows("21:79").EntireRow.Hidden = True
    End Select '1er passage
End Sub
Sub Masque(Plage)
    Range(Plage).EntireRow.Hidden = False
End Sub
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
XL pour MAC Calcul de notes.
Réponses
5
Affichages
706
Réponses
2
Affichages
466
Réponses
3
Affichages
339
Réponses
13
Affichages
500
Retour