Afficher/masquer une ligne en fonction d'une valeur

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

Lexor

XLDnaute Nouveau
Bonjour à tous,

Je viens de découvrir ce forum et j'ai besoin de votre aide.
Je souhaite afficher/masquer une ligne après avoir fait un double clique sur une cellule. La cellule qui doit être masquée a pour valeur "x".

Voila mon code pour lequel je me suis inspiré de ce post https://www.excel-downloads.com/thr...e-en-fonction-de-la-valeur-dune-saisie.73817/

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Select Case Target.Address
    Case Is = "$A$3"
        For Each Cell In Range("A4:A" & Range("A65536").End(xlUp).Row)
    If Target.Value = "x" Then Rows(Target.Row).Hidden = True
    Next Cell
End Select
End Sub

Malheureusement ca ne fonctionne pas et je ne comprends pas d'où ca vient.
Quelque a une idée? 😕

Merci
 

Pièces jointes

Dernière édition:
Re : Afficher/masquer une ligne en fonction d'une valeur

Bonsoir,

Si tu souhaites masquer les lignes contenant x en colonne A en double cliquant sur la cellule A3, peut-être comme ceci:

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Address = "$A$3" Then
   For Each cell In Range("A4:A" & Range("A65536").End(xlUp).Row)
     If cell.Value = "x" Then Rows(cell.Row).Hidden = True
   Next cell
End If
End Sub

Si tu souhaites masquer la ligne sur laquelle tu travailles en double cliquant sur la cellule de la colonne A qui contient un x, peut-être ça:

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("A4:A" & Range("A65536").End(xlUp).Row)) Is Nothing Then
     If Target.Value = "x" Then Rows(Target.Row).Hidden = True
End If
End Sub

Bien à toi,

mth

Edit: 🙂 Bonsoir Dranreb 🙂
(oui, notre ami seghi a peut-être abandonné ?)
Bonne soirée 🙂
m
 
Dernière édition:
Re : Afficher/masquer une ligne en fonction d'une valeur

Curieux votre code
Si la cellule sur laquelle on double clique est A3 alors pour autant de fois qu'il y a de cellules renseignées dans la colonne A: on ne s'interesse toujours quand même qu'à cette seule cellule A3 donc, et on masque sa ligne si elle contient "x". Ça n'a pas de sens voyons !
Vous avez à remplacer Target, qui ne change pas, par Cell, à déclarer As Range de préférence.
Et Rows(Cell.Row) s'écrit ordinairement Cell.Entirerow. Ça donne:
VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim Cell As Range
Select Case Target.Address
    Case Is = "$A$3"
        For Each Cell In Range("A1:A" & Range("A65536").End(xlUp).Row)
            If Cell.Value = "x" Then Cell.EntireRow.Hidden = True
            Next Cell
    End Select
End Sub
Je suppose qu'il y aura d'autres adresses à traiter différemment sinon un If aurait suffit à la place d'un Case.

Bonjour Mth. Plus de nouvelles de seghi...
À+
 
- 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
4
Affichages
243
Réponses
3
Affichages
194
Réponses
3
Affichages
452
Réponses
1
Affichages
221
Retour