Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
708
Réponses
2
Affichages
467
Réponses
3
Affichages
339
Réponses
13
Affichages
503
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…