Hej!
Hur gör man om man vill dölja alla rader som uppfyller ett villkor, i mitt fall alla rader som har ett "y" i kolumn "C". Är det ett makro som behöver göras och hur skulle ett sådant makro se ut?
Tack på förhand!
2 svar · 961 visningar · startad av Kalle M
Hej!
Hur gör man om man vill dölja alla rader som uppfyller ett villkor, i mitt fall alla rader som har ett "y" i kolumn "C". Är det ett makro som behöver göras och hur skulle ett sådant makro se ut?
Tack på förhand!
Du kan t.ex göra en händelsehanterare (högerklicka på flikens namnfält och välj visa kod)
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Target.Column = 3 Then Exit Sub
If UCase(Target.Value) = "Y" Then
Target.EntireRow.Hidden = True
Else: Target.EntireRow.Hidden = False
End If
End Sub
En uppenbar nackdel är att den bara reagerar på nyinskrivna data + du måste plocka fram raderna manuellt om du vill se dem igen (dessutom kan händelsehanterare smådjävlas ibland).
en annan variant är att använda ett filter och ta fram alla rader som INTE är = y
eller starta ett makro manuellt i stil med:
Sub DöjY()
Dim rFylldaCeller As Range
Dim rCell As Range
Columns("C:C").EntireRow.Hidden = False
Set rFylldaCeller = ActiveSheet.Columns("c"). _
ColumnDifferences(ActiveSheet.Range("C65536"))
' C65536 är en cell i c kolumnen som du vet säkert är tom
For Each rCell In rFylldaCeller.Cells
If LCase(rCell.Value) = "y" Then rCell.EntireRow.Hidden = True
Next rCell
End Sub
Eller, med lopa med hjälp av sökfunktionen
Sub DöjY2()
Dim rYCell As Range
Columns("C:C").EntireRow.Hidden = False
With ActiveSheet.Columns("c")
Set rYCell = .Find("y", LookIn:=xlValues, LookAt:=xlWhole)
If rYCell Is Nothing Then Exit Sub
Do
rYCell.EntireRow.Hidden = True
Set rYCell = .FindNext(rYCell)
Loop Until rYCell Is Nothing
End With
End Sub