Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA-Programm leere Zeilen automatisch löschen

VBA-Programm leere Zeilen automatisch löschen
22.12.2019 12:05:58
DE
Hallo Liebes Forum,
ich habe folgende Problemstellung und wäre euch sehr dankbar, wenn ihr mir weiterhelfen könntet.
Ich möchte ein kleines Programm schreiben, welches für einen kleinen Zellbereich oder eine Tabelle die leeren Zeilen, welche keine Daten enthält, automatisch löscht. Die Datei enthält nur einen Reiter. Der Zellbereich geht hierbei von Spalte „B“ bis „AD“ und Zeile 5 bis 140. In der Tabelle sind auch Stückzahlen (Spalte „S“ bis „AD“) enthalten sind und somit auch Zellen mit einer 0 (null). Daher gibt es prinzipiell keine leeren Zeilen.
Mein Ansatz wäre ein Suchkriterium, welches die Spalten „J“ bis „R“ nach leeren Spalten durchsucht. Erst wenn diese Zellen leer sind, soll die gesamte Zeile gelöscht werden.
Ihr würdet mir sehr helfen, wenn Ihr mich unterstützen könntet. Ich denke für euch als Experten wäre dies ein kleiner Schritt als für mich.
Ich bedanke mich herzlich bei jedem im Voraus für die Hilfe und wünsche euch angenehme Feiertage!!
Liebe Grüße
DE
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA-Programm leere Zeilen automatisch löschen
22.12.2019 12:38:03
Werner
Hallo,
so:
Sub Schaltfläche1_Klicken()
Dim i As Long
'Blattname anpassen
With Worksheets("Tabelle1")
For i = 140 To 5 Step -1
If WorksheetFunction.CountBlank(.Range("J" & i & ":R" & i)) = 9 Then
.Rows(i).Delete
End If
Next i
End With
End Sub
Gruß Werner
Anzeige
AW: VBA-Programm leere Zeilen automatisch löschen
22.12.2019 13:10:17
DE
Hallo Werner,
Vielen Dank für deine Hilfe! Das Programm funktioniert einwandfrei. Was müsste ich machen, wenn ich die Zeilen nicht löschen, sondern nur ausblenden will?
Gruß DE
AW: VBA-Programm leere Zeilen automatisch löschen
22.12.2019 13:26:56
Werner
Hallo,
so:
.Rows(i).Hidden = True
Gruß Werner
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Leere Zeilen in Excel automatisch löschen mit VBA


Schritt-für-Schritt-Anleitung

Um leere Zeilen in Excel automatisch zu löschen, kannst du ein einfaches VBA-Makro verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

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

  2. Klicke auf Einfügen und dann auf Modul, um ein neues Modul zu erstellen.

  3. Kopiere den folgenden VBA-Code in das Modul:

    Sub Schaltfläche1_Klicken()
        Dim i As Long
        ' Blattname anpassen
        With Worksheets("Tabelle1")
            For i = 140 To 5 Step -1
                If WorksheetFunction.CountBlank(.Range("J" & i & ":R" & i)) = 9 Then
                    .Rows(i).Delete
                End If
            Next i
        End With
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Klicke auf eine Schaltfläche oder erstelle eine neue, um das Makro auszuführen.

Mit diesem Makro werden alle Zeilen gelöscht, in denen die Zellen in den Spalten J bis R leer sind. Du kannst die Zellbereiche anpassen, um die gewünschten Zeilen zu überprüfen.


Häufige Fehler und Lösungen

  • Fehler: Das Makro funktioniert nicht.

    • Lösung: Stelle sicher, dass der Blattname in der Zeile With Worksheets("Tabelle1") korrekt ist. Ändere ihn entsprechend dem Namen deines Arbeitsblattes.
  • Fehler: Alle Zeilen werden gelöscht.

    • Lösung: Überprüfe, ob der Bereich, den du überprüfst (J bis R), tatsächlich die leeren Zellen enthält.

Alternative Methoden

Falls du kein VBA verwenden möchtest, kannst du auch die Filterfunktion in Excel nutzen:

  1. Wähle den Zellbereich aus, den du filtern möchtest.
  2. Klicke auf Daten und dann auf Filter.
  3. Wähle den Filter für die Spalten, die du überprüfen möchtest, und setze ihn auf „Leere“.
  4. Lösche die gefilterten Zeilen manuell.

Diese Methode ist weniger automatisiert, kann aber in bestimmten Situationen nützlich sein.


Praktische Beispiele

Hier ist ein einfaches Beispiel, wie du das VBA-Makro anpassen kannst, um Zeilen nur auszublenden statt sie zu löschen:

Sub Schaltfläche1_Klicken()
    Dim i As Long
    With Worksheets("Tabelle1")
        For i = 140 To 5 Step -1
            If WorksheetFunction.CountBlank(.Range("J" & i & ":R" & i)) = 9 Then
                .Rows(i).Hidden = True
            End If
        Next i
    End With
End Sub

Mit diesem Makro werden die Zeilen, die keine Daten enthalten, ausgeblendet, anstatt sie zu löschen.


Tipps für Profis

  • Verwende Application.ScreenUpdating = False zu Beginn des Makros, um die Ausführungsgeschwindigkeit zu erhöhen. Vergiss nicht, es am Ende wieder auf True zu setzen.

  • Teste dein Makro immer zuerst in einer Kopie deiner Datei, um Datenverlust zu vermeiden.

  • Dokumentiere deinen Code, um später Änderungen einfacher vornehmen zu können.


FAQ: Häufige Fragen

1. Wie kann ich die Zeilen nur ausblenden anstatt sie zu löschen?
Du kannst die Zeilen mit dem Befehl .Rows(i).Hidden = True ausblenden.

2. Funktioniert das Makro auch in Excel 365?
Ja, das Makro funktioniert auch in Excel 365, solange du die richtigen Zellbereiche angibst.

3. Kann ich das Makro anpassen, um nur bestimmte Spalten zu überprüfen?
Ja, du kannst die Range in der Zeile CountBlank entsprechend anpassen, um nur bestimmte Spalten zu überprüfen.

4. Wie oft sollte ich das Makro ausführen?
Das hängt von der Häufigkeit ab, mit der du neue Daten hinzufügst. Du kannst es regelmäßig nach dem Hinzufügen neuer Daten ausführen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige