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

Forumthread: VBA Zeilen löschen

VBA Zeilen löschen
07.04.2017 14:46:41
Marcus
Hallo,
ich benötige ein Makro mit dem ich eine komplett leere Zeile löschen kann.
Folgendes Makro habe ich bereits:
Sub Leerzeilen_loeschen()
Dim lngSpalte As Long
lngSpalte = 1
For a = ActiveSheet.Cells(Rows.Count, lngSpalte).End(xlUp).Row To 1 Step -1
If ActiveSheet.Cells(a, 1).Value = "" Then
Rows(a).Delete shift:=xlUp
End If
Next a
End Sub

Problem:
Das Makro sucht einen Wert in Spalte A. Wenn in Spalte B aber ein Wert drin steht, in Spalte A aber nicht, wird die gesamte Zeile gelöscht.
Ich benötige jedoch ein Makro das innerhalb der gesamten Zeile nach einem Wert sucht und das löschen dann überspringt.
Viele Grüße
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: VBA Zeilen löschen
07.04.2017 15:27:49
KlausF
Hi Marcus,
Sub LeereZeilenLoeschen()
Dim i As Long
Dim lastRow As Long
lastRow = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
For i = lastRow To 1 Step -1
If Application.CountA(Rows(i)) = 0 Then Rows(i).Delete
Next i
End Sub
Gruß
Klaus
Anzeige
AW: VBA Zeilen löschen
10.04.2017 09:41:32
Marcus
Hallo Klaus,
das funktioniert grundsätzlich sehr gut, danke! Jetzt habe ich das Problem das in einigen Zellen eine Formel drin ist. Die gibt aber auch den Wert "" (also leer) aus. Diese sollen mit dem VBA auch gelöscht werden. Leider werden diese Zeilen übersprungen da sich in den Zellen die Formel befindet.
Kann man dies mit einbauen das diese Zeilen auch gelöscht werden, wenn das Ergebnis der Formel "" ist.
Viele Grüße
Anzeige
AW: VBA Zeilen löschen
10.04.2017 10:38:37
Daniel
Hi
dann probiers mal so:
IF Worksheetfunction.CountIf(Rows(i), "") = Rows(i).Cells.Count Then Rows(i).Delete
Gruß Daniel
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

VBA Zeilen Löschen in Excel


Schritt-für-Schritt-Anleitung

Um in Excel mit VBA Zeilen zu löschen, kannst du die folgenden Schritte befolgen:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Einfügen eines neuen Moduls: Klicke mit der rechten Maustaste auf "VBAProject (deine Arbeitsmappe)" und wähle Einfügen > Modul.

  3. Kopiere den VBA-Code: Verwende den folgenden Code, um leere Zeilen zu löschen:

    Sub LeereZeilenLoeschen()
       Dim i As Long
       Dim lastRow As Long
       lastRow = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
       For i = lastRow To 1 Step -1
           If WorksheetFunction.CountIf(Rows(i), "") = Rows(i).Cells.Count Then
               Rows(i).Delete
           End If
       Next i
    End Sub
  4. Führe das Makro aus: Schließe den VBA-Editor und gehe zurück zu Excel. Drücke ALT + F8, wähle LeereZeilenLoeschen aus und klicke auf Ausführen.


Häufige Fehler und Lösungen

  • Problem: Das Makro löscht Zeilen, die Formeln enthalten, aber leer erscheinen.

    • Lösung: Stelle sicher, dass du den CountIf-Befehl wie im obigen Beispiel anwendest, um auch solche Zeilen zu identifizieren.
  • Problem: Das Makro löscht nur Zeilen in einer bestimmten Spalte.

    • Lösung: Der oben genannte Code überprüft die gesamte Zeile, sodass alle leeren Zeilen gelöscht werden, unabhängig von den Werten in anderen Spalten.

Alternative Methoden

Wenn du keine VBA-Lösungen verwenden möchtest, kannst du auch die Filterfunktion von Excel verwenden, um leere Zeilen zu finden und diese manuell zu löschen:

  1. Daten filtern: Setze einen Filter auf deine Daten.
  2. Leere Zeilen anzeigen: Wähle im Filter "Leere" aus.
  3. Zeilen löschen: Markiere die leeren Zeilen und lösche sie.

Praktische Beispiele

Hier sind einige Anwendungsfälle für das Löschen von Zeilen in Excel mit VBA:

  1. Leere Zeilen in einem Berichtsblatt: Verwende das LeereZeilenLoeschen-Makro, bevor du Berichte generierst, um sicherzustellen, dass nur relevante Daten angezeigt werden.
  2. Datenbereinigung: Nutze das Makro, um leere Zeilen nach dem Import von Daten aus externen Quellen zu entfernen.

Tipps für Profis

  • Automatisierung: Du kannst das Makro so anpassen, dass es automatisch beim Öffnen deiner Arbeitsmappe ausgeführt wird.
  • Sicherungskopie: Immer eine Sicherungskopie der Daten anlegen, bevor du ein Makro ausführst, um unerwünschte Datenverluste zu vermeiden.
  • Erweiterte Bedingungen: Du kannst den Code erweitern, um spezifische Bedingungen für das Löschen von Zeilen festzulegen, z.B. Zeilen, die einen bestimmten Text enthalten.

FAQ: Häufige Fragen

1. Wie lösche ich nur bestimmte Zeilen und nicht alle leeren?
Du kannst die Bedingungen im VBA-Code anpassen, um nur Zeilen zu löschen, die bestimmten Kriterien entsprechen.

2. Kann ich auch Spalten mit dem VBA-Code löschen?
Ja, du kannst den Code anpassen, um auch leere Spalten zu löschen, indem du Columns(i).Delete anstelle von Rows(i).Delete verwendest.

3. Funktioniert der Code in allen Excel-Versionen?
Der VBA-Code sollte in den meisten modernen Excel-Versionen, einschließlich Excel 2016 und 2021, funktionieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige