XL 2013 Afficher / Masquer ligne en fonction valeur cellule

  • Initiateur de la discussion Initiateur de la discussion YANOU38
  • Date de début Date de début

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 !

YANOU38

XLDnaute Occasionnel
Bonjour à tous,
J'ai essayé de me débrouiller tout seul, mais je ne trouve pas la solution...😕

Une liste déroulante en B11 => Choix A ou B ou C
Si A => Masquage lignes 16 à 21
Si B => Masquage lignes 13-14-15-19-20-21
Si C => Masquage lignes 13 à 18

Seul le choix "C" fonctionne...
Merci pour votre aide
 

Pièces jointes

Solution
Bonjour
En plus de la remarque de @natorp (enlever les espaces entre A;B;C dans la validation) ton code modifié

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = 0

Rows("13:21").EntireRow.Hidden = False
If Range("b11").Value = "A" Then Range("16:21").EntireRow.Hidden = True
If Range("b11").Value = "B" Then Range("13:15,19:21").EntireRow.Hidden = True
If Range("b11").Value = "C" Then Range("13:18").EntireRow.Hidden = True

Application.ScreenUpdating = -1
End Sub

Edit : Oups, @natorp a été plus rapide !
Bonjour
En plus de la remarque de @natorp (enlever les espaces entre A;B;C dans la validation) ton code modifié

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = 0

Rows("13:21").EntireRow.Hidden = False
If Range("b11").Value = "A" Then Range("16:21").EntireRow.Hidden = True
If Range("b11").Value = "B" Then Range("13:15,19:21").EntireRow.Hidden = True
If Range("b11").Value = "C" Then Range("13:18").EntireRow.Hidden = True

Application.ScreenUpdating = -1
End Sub

Edit : Oups, @natorp a été plus rapide !
 
Bonjour à tous,
J'ai tenté de faire évoluer mon classeur...
Dans la PJ, sur la Feuille "Base", on clique sur le bouton "Mise à jour", des feuilles nominatives se créent sur la base de la Feuille "Modele".
Mes cellules B11, sur ces feuilles créées, possèdent la macro qui devrait Afficher/Masquer la bonne option, mais rien ne se passe... 🙁
Merci pour votre aide.
 

Pièces jointes

Bonjour
Le code ne doit pas être dans la feuille modèle mais dans un module
VB:
Sub Masque()
Application.ScreenUpdating = 0

Rows("13:21").EntireRow.Hidden = False
If Range("b11").Value = "A" Then Range("16:21").EntireRow.Hidden = True
If Range("b11").Value = "B" Then Range("13:15,19:21").EntireRow.Hidden = True
If Range("b11").Value = "C" Then Range("13:18").EntireRow.Hidden = True

Application.ScreenUpdating = -1
End Sub

Ensuite, tu ajoutes à ton code :
Code:
Sub Toto
.....
For j = 0 To UBound(Chp): ActiveSheet.Range(Chp(j)(2)) = oItms(1, j + 1): Next
  
 Call Masque
 
 Next i
 ....
 End Sub
 
- 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

Retour