Excel VBA: Wie kann ich mehrere Zeilen in einem Bereich ausblenden?

4 Antworten

Sub Ausblenden()
For i = 1 To 2000
    If Cells(i, 1) = "x" Or Cells(i, 1) = " " Then
        Rows(i).EntireRow.Hidden = True
    End If
Next
End Sub

Die Zellen A1 bis A2000 werden überprüft.

Falls x oder " " gefunden wird in diesen Zellen, dann werden diese ausgeblendet.

Elumania  28.05.2021, 09:58

Das " " könnte bei mir zu Fehlern führen. Das wäre doch eine leere Zelle?

0
patvog1606 
Fragesteller
 28.05.2021, 10:10
@Elumania

ja, richtig. Wenn die zelle leer ist, soll die gesamte Zeile ausgeblendet werden :D

0
Elumania  28.05.2021, 10:15
@patvog1606

Dann schreib das so:

If Cells(i, 1) = "x" Or IsEmpty(Cells(i, 1)) Then
0
Albin1990  28.05.2021, 12:39

"" reicht... du brauchst kein Leerzeichen dazwischen..

und es stimmt nicht ganz, weil er ja möchte, dass bei "" die Zellen ausgeblendet werden und bei "x" eingeblendet...

LG

1
Elumania  28.05.2021, 13:02
@Albin1990

ok, falsch gelesen. Korrigiert! (aber nicht getestet)

Sub AusblendenEinblenden()
For i = 1 To 2000
    If Cells(i, 1) = "x" 
        Rows(i).EntireRow.Hidden = False
    ElseIf IsEmpty(Cells(i, 1)) Then
        Rows(i).EntireRow.Hidden = True
    End If
Next
End Sub
2

Am einfachsten ist es, wenn du einen Filter setzt.

Am leichtesten mit einer Schleife

z.B.:

For ze = 3 to 1000
  if Cells(ze,1).value = "x" then
    rows(ze).hidden = true
  else
    rows(ze).hidden = false
  end if
next ze
Suboptimierer  28.05.2021, 14:22

Du hast einen Dreher, aber vom Prinzip her ist das richtig.

1
LtLTSmash  28.05.2021, 15:04
@Suboptimierer

Ja, jetzt seh ichs auch. Das mit dem .hidden und .visible ist aber auch der letzte Schei... ;-)

1

Hallo, nur zur Sicherheit: Filter kennst du schon, oder?

Bild zum Beitrag

Woher ich das weiß:eigene Erfahrung – Faulheit >> Neugier >> Wissen
 - (Computer, Microsoft Excel, VBA)