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".
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?
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
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.