Microsoft Excel

Herbers Excel/VBA-Archiv

Zeilen mit Nullen löschen

Betrifft: Zeilen mit Nullen löschen von: Patrick F.
Geschrieben am: 01.09.2004 13:12:19

Hi Leute,

mein Problem ist folgendes:
Ich habe eine Tabelle mit vielen Zeilen und mehreren Spalten. Die Zellen der ersten Spalte enthalten Text, Zahlen und auch Leerzellen. Ich will nun mittels eines Makros alle ZEILEN (beispielsweise im Bereich "1:500") ausblenden, die in der ERSTEN SPALTE den Wert "0" (sprich "NULL") enthalten.

(Am liebsten wäre es mir, wenn ich das Makro später so verändern könnte, dass ich mir bestimmte bereiche einer beliebigen Spalte zur Null-Prüfung und Zeilenlöschung rauspicken kann)

Hier ist ein kleines Beispiel, wie eine Datei im Groben aussehen könnte.
https://www.herber.de/bbs/user/10391.xls

Vielen Dank schon einmal im Voraus!

  


Betrifft: AW: Zeilen mit Nullen löschen von: Torsten K
Geschrieben am: 01.09.2004 13:33:36

der text sollte nicht so schwierig sein, dass du ihn nicht selbst editieren könntest, bei fragen gerne wieder

Sub ausblenden()

Dim zeile As Integer
Dim spalte As Integer

spalte = 1

For zeile = 1 To 1500

If ThisWorkbook.Worksheets("Tabelle1").Cells(zeile, spalte) = 0 Then
Rows(zeile).Select
    Selection.EntireRow.Hidden = True

End If

Next zeile
End Sub



  


Betrifft: AW: Zeilen mit Nullen löschen von: Patrick F
Geschrieben am: 01.09.2004 13:45:08

Hi Thorsten,
das funktioniert leider so nicht. Er löscht die allerersten Zeilen bis eine Zelle mit Text auftritt.

Das makro soll in diesem bereich alle und nur die zeilen löschen, bei denen in der ersten spalte definitiv eine 0 eingetragen ist.


  


Betrifft: AW: Zeilen mit Nullen löschen von: Torsten K
Geschrieben am: 01.09.2004 13:51:57

setz die null in der if schleife mal in anführungsstriche, dann sollte es funzen:

Sub ausblenden()

Dim zeile As Integer
Dim spalte As Integer


For zeile = 1 To 1500

    If ThisWorkbook.Worksheets("Tabelle1").Cells(zeile, 1) = "0" Then
    
        Rows(zeile).Select
        Selection.EntireRow.Hidden = True
    End If

Next zeile


End Sub



  


Betrifft: AW: Zeilen mit Nullen löschen von: Reinhard
Geschrieben am: 01.09.2004 13:54:56

Hi Patrick,
Sub ausblenden()
Dim zeile As Long, spalte As Integer
spalte = 1
For zeile = 1 To 1500
    If ThisWorkbook.Worksheets("Tabelle1").Cells(zeile, spalte) = "0" Then _
        Rows(zeile).EntireRow.Hidden = True
Next zeile
End Sub

Gruß
Reinhard


  


Betrifft: AW: Zeilen mit Nullen löschen von: Patrick F
Geschrieben am: 01.09.2004 14:04:32

Das funktioniert jetz, super!

Kann ich auch irgendwas machen, um das Makro nicht nur in einem definierten Tabellenblatt (hier "Tabelle1")funktioniert, sondern so variabel ist, dass es für das Tabellenblatt funktioniert, in dem ich mich gerade befinde?


  


Betrifft: AW: Zeilen mit Nullen löschen von: Reinhard
Geschrieben am: 01.09.2004 14:21:34

Ja, in ein Modul:
Sub ausblenden()
Dim zeile As Long, spalte As Integer
spalte = 1
For zeile = 1 To 1500
    If ActiveSheet.Cells(zeile, spalte) = "0" Then _
        Rows(zeile).EntireRow.Hidden = True
Next zeile
End Sub

Gruß
Reinhard


  


Betrifft: AW: Zeilen mit Nullen löschen von: Patrick F
Geschrieben am: 01.09.2004 14:49:13

Spitze, bin begeistert!

wenn ich jetzt andere bereiche zur kontrolle festlegen will, was muss ich dann machen?
mal sehen, ob ich es verstanden habe. (zu meiner entschuldigung: habe bis heute noch nie was mit vba gemacht)

wenn ich z.b. in spalte c die zeilen 15-20 auf nullen prüfen und dann löschen will:
nach "Next zeile" definiere ich neu

Dim zeile1 As Long, spalte1 As Integer
spalte1 = 3
For zeile1 = 15 To 20
If ActiveSheet.Cells(zeile1, spalte1) = "0" Then _
Rows(zeile1).EntireRow.Hidden = True
Next zeile1


  


Betrifft: AW: Zeilen mit Nullen löschen von: Reinard
Geschrieben am: 01.09.2004 15:26:01

Hi Patrick,
ja, der Code stimmt.
Ich vergesse es auch oft, vor und nach dem Unterstrich muss ein Leerzeichen sein.
Dann möglichst eine ganze Sub hier reinkopieren, dann erkennt herber die Sub und behält die Einrückungen (vor If) bei, viel leichter zu lesen dann.
Sub test()
Dim zeile1 As Long, spalte1 As Integer
spalte1 = 3
For zeile1 = 15 To 20
    If ActiveSheet.Cells(zeile1, spalte1) = "0" Then Rows(zeile1).EntireRow.Hidden = True
Next zeile1
End Sub

Gruß
Reinhard


  


Betrifft: AW: Zeilen mit Nullen löschen von: Patrick F
Geschrieben am: 01.09.2004 15:31:23

Alles klar, Problem erstmal gelöst! Vielen Dank für die Hilfe.

MfG
Patrick


 

Beiträge aus den Excel-Beispielen zum Thema "Zeilen mit Nullen löschen"