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

Zeile löschen, wenn zelle leer

Forumthread: Zeile löschen, wenn zelle leer

Zeile löschen, wenn zelle leer
24.01.2008 14:26:00
Jonatan
Hallo,
ich würde gerne einen VBACode für folgendes Ereignis schreiben.
Wenn in Spalte A eine Zelle leer ist, dann soll die ganze Zeile gelöscht werden, in der die leere Zelle ist.
Also: Wenn z.B. a5 eine leere Zelle ist, dann soll die ganze Zeile fünf gelöscht werden und nach oben verschoben werden.
Könnt ihr mir vielleicht weiter helfen?
Viele Dank schon mal
Gruß Jonatan

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeile löschen, wenn zelle leer
24.01.2008 14:31:00
Waven
Hallo Jonatan
Du kannst dazu folgendes Makro verwenden.

Sub Zeilen_loeschen()
Dim loeschen As Double
For loeschen = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
If Cells(loeschen, 1).Value = "" Then
Rows(loeschen).Delete
End If
Next loeschen
End Sub


Gruss
Waven

Anzeige
AW: Zeile löschen, wenn zelle leer
24.01.2008 14:32:00
Jonatan
Hallo Waven,
sehr cool!!!
funktioniert toll.
Vielen Dank
Gruß Jonatan

AW: Zeile löschen, wenn zelle leer
24.01.2008 14:38:32
Peter
Hallo Jonatan,
so sollte es gehen:
Option Explicit

Public Sub LeereRaus()
Dim WkSh     As Worksheet
Dim lLetzte  As Long
Dim lZeile   As Long
Application.ScreenUpdating = False
Set WkSh = Worksheets("Tabelle1")  ' 


Gruß Peter

Anzeige
AW: Zeile löschen, wenn zelle leer
24.01.2008 14:39:51
Jonatan
Hallo Peter,
vielen Dank.
Funktioniert auch super.
Gruß Jonatan

AW: Zeile löschen, wenn zelle leer
24.01.2008 14:40:09
Peter
Hallo Jonatan,
eine kleine Korrektur For lZeile = lLetzte To 1 Step -1
Gruß Peter

AW: Zeile löschen, wenn zelle leer
25.01.2008 02:20:00
Daniel
Hi
warum immer so aufwendigen und vorallem langsamen Code?
wenn die Zelle wirklich leer ist (also keine Formel mit dem Ergebnis ""), dann gehts auch mit diesem Code:

Sub Makro2()
If WorksheetFunction.CountIf(Range("a:a"), "") > 0 Then _
Range("A:A").SpecialCells(xlCellTypeBlanks).Delete shift:=xlUp
End Sub


wenns grosse Datenmengen sind und viele Zeilen gelöscht werden sollen, ist das hier zu empfehlen
die bisher gezeigten Schleifen kannst du dann vergessen.


Sub Makro3()
Columns(1).Insert
With Range("A1:A" & Cells(Rows.Count, 2).End(xlUp).Row)
.Formula = "=IF(RC[1]="""",true,Row())"
.Formula = .Value
.CurrentRegion.Sort key1:=Cells(1, 1), Order1:=xlAscending, header:=xlNo
.SpecialCells(xlCellTypeConstants, 4).EntireRow.Delete
End With
Columns(1).Delete
End Sub


Gruss, Daniel

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Zeilen in Excel löschen, wenn Zellen leer sind


Schritt-für-Schritt-Anleitung

Um eine Zeile in Excel zu löschen, wenn eine Zelle leer ist, kannst du ein einfaches VBA-Makro verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Excel öffnen: Starte Excel und öffne die Datei, in der du die leeren Zeilen löschen möchtest.

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

  3. Neues Modul erstellen: Klicke mit der rechten Maustaste auf "VBAProject (deineDatei.xlsm)" und wähle „Einfügen“ > „Modul“.

  4. Code einfügen: Kopiere den folgenden VBA-Code in das Modul:

    Sub Zeilen_loeschen()
       Dim loeschen As Double
       For loeschen = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
           If Cells(loeschen, 1).Value = "" Then
               Rows(loeschen).Delete
           End If
       Next loeschen
    End Sub
  5. Makro ausführen: Schließe den VBA-Editor und gehe zurück zu Excel. Drücke ALT + F8, wähle Zeilen_loeschen aus und klicke auf „Ausführen“.

Jetzt werden alle Zeilen gelöscht, in denen die Zelle in Spalte A leer ist.


Häufige Fehler und Lösungen

  • Fehler: Das Makro löscht nicht die richtigen Zeilen.

    • Lösung: Stelle sicher, dass du die richtige Spalte in der Cells-Funktion verwendest. Zum Beispiel, wenn du in Spalte B prüfen möchtest, ändere Cells(loeschen, 1) in Cells(loeschen, 2).
  • Fehler: Der VBA-Editor öffnet sich nicht.

    • Lösung: Überprüfe, ob du die richtigen Berechtigungen hast, um Makros auszuführen. Stelle sicher, dass die Datei im .xlsm-Format gespeichert ist.

Alternative Methoden

Wenn du keine VBA-Lösungen verwenden möchtest, kannst du auch Formeln verwenden, um leere Zeilen in Excel zu löschen. Eine Möglichkeit ist die Verwendung von Filter und Sortierung:

  1. Daten filtern: Wähle deine Daten aus und gehe zu „Daten“ > „Filter“.
  2. Leere Zellen filtern: Klicke auf den Dropdown-Pfeil in der Spalte und wähle „Leere Zellen“ aus.
  3. Leere Zeilen löschen: Markiere die gefilterten Zeilen, klicke mit der rechten Maustaste und wähle „Zeile löschen“.
  4. Filter zurücksetzen: Deaktiviere den Filter, um alle verbleibenden Daten anzuzeigen.

Praktische Beispiele

  • Beispiel 1: Wenn du eine Tabelle mit den Spalten "Name", "Alter" und "Stadt" hast und alle Zeilen ohne Namen löschen möchtest, benutze das oben genannte VBA-Makro. Es wird alle Zeilen entfernen, wo die Zelle in der Spalte "Name" leer ist.

  • Beispiel 2: Mit der Formel =WENN(A1="";"";A1) kannst du in einer neuen Spalte die leeren Zellen identifizieren und die Daten dann nach dieser neuen Spalte sortieren, um die leeren Zeilen zu löschen.


Tipps für Profis

  • Nutze das xlCellTypeBlanks-Objekt für eine schnellere Lösung, wenn du viele leere Zeilen in einer großen Datenmenge hast. Beispiel:

    Sub LeereZeilenLoeschen()
       If WorksheetFunction.CountIf(Range("A:A"), "") > 0 Then _
           Range("A:A").SpecialCells(xlCellTypeBlanks).Delete Shift:=xlUp
    End Sub
  • Vermeide Schleifen, wenn du mit großen Datenmengen arbeitest. Diese können die Performance negativ beeinflussen.


FAQ: Häufige Fragen

1. Frage: Kann ich das Makro auch für mehrere Spalten verwenden?
Antwort: Ja, du kannst das Makro anpassen, indem du die Spaltennummern in der Cells-Funktion änderst, um auch andere Spalten zu überprüfen.

2. Frage: Wie kann ich leere Zeilen automatisch ohne VBA löschen?
Antwort: Du kannst die Filterfunktion verwenden, um leere Zeilen anzuzeigen und diese dann manuell zu löschen.

3. Frage: Was passiert mit den Daten, wenn ich leere Zeilen lösche?
Antwort: Die Daten in den verbleibenden Zeilen werden nach dem Löschen nach oben verschoben, um die Lücken zu schließen.

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