Afficher/masquer une ligne en fonction d'une valeur

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? :confused:

Merci
 

Pièces jointes

  • Classeur2.xls
    22 KB · Affichages: 66
  • Classeur2.xls
    22 KB · Affichages: 62
  • Classeur2.xls
    22 KB · Affichages: 68
Dernière édition:

mth

XLDnaute Barbatruc
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:

Dranreb

XLDnaute Barbatruc
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...
À+
 

Discussions similaires

Statistiques des forums

Discussions
312 333
Messages
2 087 371
Membres
103 528
dernier inscrit
maro