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

Microsoft 365 Macro pour afficher/masquer lignes qui ne s'exécute plus :-/

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 !

Cinelles

XLDnaute Nouveau
Bonsoir à tous,

Pour afficher ou masquer des lignes en fonction de listes déroulantes, j'ai créé la macro ci-dessous.
J'ai pu la tester complètement sans souci une fois, mais maintenant elle ne se lance plus, quand je sélectionne un item de la liste déroulante, plus rien ne se passe...
Qu'a-t-il pu se passer ? Voici un extrait :

Private Sub Worksheet_Change(ByVal Target As Range)
Rows("46:1331").EntireRow.Hidden = True
Select Case Range("$B$4").Value
Case ("Toto"): Rows("46:74").EntireRow.Hidden = False

Case Else
Rows("46:1331").EntireRow.Hidden = True
End Select
End Sub

Merci pour vos retours, bonne soirée 🙂
 
Solution
Avec votre code il faut que la dernière cellule (B18) contienne "Toto" pour que les lignes 46:74 s'affichent.

Voyez ceci ;
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Rows("46:1331").EntireRow.Hidden = True
If Application.CountIf(Range("B4:B18"), "Toto") Then Rows("46:74").EntireRow.Hidden = False
End Sub
Les lignes s'affichent si au moins une des cellules de la plage B4:B18 contient "Toto".
Bonsoir Cinelles et bienvenu, bonsoir le forum,

Difficile de te répondre sans le fichier qui va bien...
Peut-être les macros événementielles ont été désactivées. Si c'est le cas, dans une module standard ajoute la macro ci-dessous puis réessaie...

VB:
Sub Macro1()
Application.EnableEvents = True
End Sub
 
Bonjour à tous
Essaye
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    Rows("46:1331").Hidden = True
    Rows("46:74").Hidden = Not UCase(Range("$B$4")) = "TOTO"
End Sub
 
Merci Jacky, mais ça ne change rien, les lignes sont cachées par défaut et ne s'affichent plus en sélectionnant la liste...
re..
Donne cette liste
Le problème peut venir des majuscules VBA est sensible à la casse
Cette macro est une macro évènementielle, elle se trouve dans la feuille concernée
Clic droit sur l'onglet de la feuille ==>visualiser le code
 
Dernière édition:
Hello à tous,

Alors j'ai compris d'où vient le dysfonctionnement, sans pour autant savoir le régler...
En fait j'ai plusieurs cellule B4, B5, B6.... B18 avec la même liste déroulante.
La macro fonctionne pour une liste (par exemple ..B4).
Après, j'ai pensé bien faire en copiant différents blocs pour chaque cellule B4, B5, etc... Comme dans l'exemple
VB:
ci-dessous :
Private Sub Worksheet_Change(ByVal Target As Range)
Rows("46:1331").EntireRow.Hidden = True
Select Case Range("$B$4").Value
Case ("Toto"): Rows("46:74").EntireRow.Hidden = False

Case Else
Rows("46:1331").EntireRow.Hidden = True
End Select

Select Case Range("$B$5").Value
Case ("Toto"): Rows("46:74").EntireRow.Hidden = False

Case Else
Rows("46:1331").EntireRow.Hidden = True
End Select
End Sub

Et là ça bug...
J'imagine qu'il y a un moyen plus propre de dire si B4="toto" ou B5="Toto" ou B6="Toto"... alors affiche les lignes spécifiques à TOTO ?

Merci à vous
 
Avec votre code il faut que la dernière cellule (B18) contienne "Toto" pour que les lignes 46:74 s'affichent.

Voyez ceci ;
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Rows("46:1331").EntireRow.Hidden = True
If Application.CountIf(Range("B4:B18"), "Toto") Then Rows("46:74").EntireRow.Hidden = False
End Sub
Les lignes s'affichent si au moins une des cellules de la plage B4:B18 contient "Toto".
 
Merci beaucoup job75, c'est parfait, ça marche très bien ainsi 🙂
Très bon week-end, et merci à tous 🙂
 
- 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

Réponses
3
Affichages
452
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…