Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zeilen mit Nullen löschen

Zeilen mit Nullen löschen
01.09.2004 13:12:19
Patrick
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!
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen mit Nullen löschen
01.09.2004 13:33:36
Torsten
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

Anzeige
AW: Zeilen mit Nullen löschen
Patrick
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.
AW: Zeilen mit Nullen löschen
01.09.2004 13:51:57
Torsten
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

Anzeige
AW: Zeilen mit Nullen löschen
Reinhard
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
Anzeige
AW: Zeilen mit Nullen löschen
Patrick
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?
AW: Zeilen mit Nullen löschen
Reinhard
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
Anzeige
AW: Zeilen mit Nullen löschen
Patrick
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
Anzeige
AW: Zeilen mit Nullen löschen
Reinard
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
Anzeige
AW: Zeilen mit Nullen löschen
Patrick
Alles klar, Problem erstmal gelöst! Vielen Dank für die Hilfe.
MfG
Patrick
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zeilen mit Nullen in Excel löschen


Schritt-für-Schritt-Anleitung

Um in Excel alle Zeilen mit dem Wert "0" zu löschen oder auszublenden, kannst du ein einfaches Makro verwenden. Hier ist eine Schritt-für-Schritt-Anleitung, die dir zeigt, wie du das Makro erstellst und anwendest:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu:

    • Klicke im Menü auf "Einfügen" und wähle "Modul".
  3. Kopiere den folgenden Code in das Modul:

    Sub ausblenden()
        Dim zeile As Long, spalte As Integer
        spalte = 1 ' Hier die Spalte angeben, die überprüft werden soll
        For zeile = 1 To 1500
            If ActiveSheet.Cells(zeile, spalte) = "0" Then
                Rows(zeile).EntireRow.Hidden = True ' Zeile ausblenden
            End If
        Next zeile
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Führe das Makro aus:

    • Drücke ALT + F8, wähle "ausblenden" und klicke auf "Ausführen".

Häufige Fehler und Lösungen

  • Problem: Das Makro entfernt nicht die gewünschten Zeilen.

    • Lösung: Stelle sicher, dass der Wert „0“ in Anführungszeichen steht ("0"), da die Zellen möglicherweise als Text formatiert sind.
  • Problem: Das Makro funktioniert nur im definierten Tabellenblatt.

    • Lösung: Verwende ActiveSheet, um das aktuelle Blatt zu referenzieren:
    If ActiveSheet.Cells(zeile, spalte) = "0" Then

Alternative Methoden

Wenn du keine Makros verwenden möchtest, kannst du auch die Filterfunktion in Excel nutzen:

  1. Markiere deine Daten.
  2. Gehe zu „Daten“ > „Filter“.
  3. Klicke auf den Dropdown-Pfeil in der Spalte, die du filtern möchtest.
  4. Wähle „Zahlenfilter“ > „Gleich“ und gib „0“ ein.
  5. Markiere die gefilterten Zeilen und lösche sie.

Praktische Beispiele

Hier ist ein Beispiel, wie du das Makro anpassen kannst, um andere Spalten oder Bereiche zu überprüfen:

Sub zeilenMitNullenPruefen()
    Dim zeile As Long, spalte As Integer
    spalte = 3 ' Spalte C
    For zeile = 15 To 20 ' Überprüfe die Zeilen 15 bis 20
        If ActiveSheet.Cells(zeile, spalte) = "0" Then
            Rows(zeile).EntireRow.Hidden = True
        End If
    Next zeile
End Sub

Dieses Makro prüft die Zellen in Spalte C von Zeile 15 bis 20 auf den Wert „0“ und blendet die entsprechenden Zeilen aus.


Tipps für Profis

  • Verwende die Option Explicit-Anweisung am Anfang deines Moduls, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler zu vermeiden.

  • Um die Performance zu verbessern, kannst du das Bildschirmaktualisieren während der Ausführung des Makros deaktivieren:

    Application.ScreenUpdating = False
    ' Dein Code hier
    Application.ScreenUpdating = True
  • Speichere deine Arbeit regelmäßig, um Datenverlust zu vermeiden.


FAQ: Häufige Fragen

1. Wie kann ich das Makro auf ein anderes Tabellenblatt anwenden? Du kannst ActiveSheet verwenden, um das aktuelle Blatt zu referenzieren, oder den Namen des Blattes angeben, wie in Worksheets("Tabelle1").

2. Funktioniert das Makro in allen Excel-Versionen? Ja, das VBA-Makro sollte in den meisten modernen Excel-Versionen (2010 und höher) funktionieren. Achte darauf, dass du die richtigen Berechtigungen hast, um Makros auszuführen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige