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

masquer/afficher lignes

  • Initiateur de la discussion Initiateur de la discussion poipoi
  • 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 !

poipoi

XLDnaute Impliqué
Bonjour à vous
afin de simplifier ce code qui est fait de lignes redondantes car je suis nul en VBA
Pouvez-vous me dire comment le simplifier car je bloque (et vu le nombre de lignes à masquer ça risque de faire lourd):

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [e8]) Is Nothing Then
Application.EnableEvents = False
If Target <> "x" Then Target = ""
Application.EnableEvents = True
End If
If Not Intersect(Target, [e21]) Is Nothing Then
Application.EnableEvents = False
If Target <> "x" Then Target = ""
Application.EnableEvents = True
End If
If Not Intersect(Target, [e29]) Is Nothing Then
Application.EnableEvents = False
If Target <> "x" Then Target = ""
Application.EnableEvents = True
End If

Call Masqu_lignes
End Sub

Sub Masqu_lignes()
If Range("e8").Value = "" Then Rows("10:19").Hidden = True Else Rows("10:19").Hidden = False
If Range("e21").Value = "" Then Rows("23:27").Hidden = True Else Rows("23:27").Hidden = False
If Range("e29").Value = "" Then Rows("31").Hidden = True Else Rows("31").Hidden = False
End Sub

un bien grand merci
 
Re : masquer/afficher lignes

Bonjour,

Utilise l'éditeur avancé pour publier tes codes, se sera plus lisible!
Vois si ça convient:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("E8,E21,E29")) Is Nothing And Target.Count = 1 Then
        Application.EnableEvents = False
        If Target <> "x" Then Target = ""
        Application.EnableEvents = True
    End If
    Masqu_lignes
End Sub
Code:
Sub Masqu_lignes()
Rows("10:19").Hidden = Range("E8") = ""
Rows("23:27").Hidden = Range("E21") = ""
Rows("31").Hidden = Range("E29") = ""
End Sub

A+
 
Re : masquer/afficher lignes

Bonjour Hasco
toutes mes excuses pour le code je ne savais qu'il était possible de l'inclure dans le message ainsi.
Quant au code fourni Merci beaucoup

... petit à petit j'apprends... (mais c'est long, très long)

merci
 
Dernière édition:
- 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
9
Affichages
508
  • Question Question
Microsoft 365 Probléme VBA
Réponses
8
Affichages
588
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…