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

Forumthread: in VBA Zeilen löschen

in VBA Zeilen löschen
Heinz
Liebe Excel-Spezialisten,
ich möchte gerne innerhalb einer Tabelle die markiert ist
("currentregion") alle Zeillen löschen, bei denen in der ersten
Spalte ("A") die Zelle leer ist.
Habt Ihr eine Idee?
Ich wünsche allen eine schöne Woche.
Heinz
P.S.:Ich habe bei level "VBA nur mit recorder" angegeben, aber ein bißchen
Makro überarbeiten krieg ich hin.
Anzeige

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

Betreff
Benutzer
Anzeige
AW: in VBA Zeilen löschen
Andre
Hi, versuch´s mal so:

Sub Test()
Dim i As Integer
LetzteZeile = Sheets("currentregion").Cells(Cells.Rows.Count, 2).End(xlUp).Row
For i = 1 To LetzteZeile
With Sheets("currentregion")
If .Cells(i, 1).Value = "" Then .Rows(i & ":" & i).Delete Shift:=xlUp
End With
Next
End Sub

Gruß Andre
Anzeige
AW: in VBA Zeilen löschen
Bert
Beim Löschen von Zeilen immer von unten anfangen, logisch, oder?
Option Explicit

Sub weg()
Dim z As Long, lZ As Long
lZ = Sheets("currentregion").Cells(65536, 2).End(xlUp).Row
For z = lZ To 1 Step -1
With Sheets("currentregion")
If .Cells(z, 1) = "" Then .Rows(z).Delete
End With
Next
End Sub

Bert
Anzeige
Völlig richtig! Hatte nicht nachgedacht! o.T.
Andre
;

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

Zeilen in Excel mit VBA löschen


Schritt-für-Schritt-Anleitung

Um in Excel VBA Zeilen zu löschen, insbesondere leere Zeilen in einer bestimmten Spalte, kannst du folgende Schritte befolgen:

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

  2. Klicke im Menü auf "Einfügen" und wähle "Modul", um ein neues Modul zu erstellen.

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

    Sub LeereZeilenLoeschen()
        Dim i As Long
        Dim LetzteZeile As Long
        LetzteZeile = Sheets("currentregion").Cells(Rows.Count, 1).End(xlUp).Row
        For i = LetzteZeile To 1 Step -1
            If Sheets("currentregion").Cells(i, 1).Value = "" Then
                Sheets("currentregion").Rows(i).Delete
            End If
        Next i
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Führe das Makro aus, indem du ALT + F8 drückst, das Makro auswählst und auf "Ausführen" klickst.

Dieser Code löscht alle Zeilen in der Tabelle "currentregion", bei denen die Zelle in der ersten Spalte leer ist.


Häufige Fehler und Lösungen

  • Fehler: "Subscript out of range"

    • Lösung: Überprüfe, ob du den korrekten Namen des Arbeitsblatts (z.B. "currentregion") verwendest. Der Name muss genau übereinstimmen.
  • Fehler: "Type mismatch"

    • Lösung: Stelle sicher, dass du die richtige Datenart verwendest. Wenn du versuchst, eine Zelle zu löschen, die nicht leer ist, kann dieser Fehler auftreten.
  • Fehler: Zeilen werden nicht gelöscht

    • Lösung: Achte darauf, dass du von der letzten Zeile nach oben iterierst. Wenn du von oben nach unten löschst, verschieben sich die Zeilen und es können nicht alle leeren Zeilen erfasst werden.

Alternative Methoden

Neben dem VBA-Code kannst du auch Excel-Formeln verwenden, um leere Zeilen auszublenden:

  • Filter verwenden: Setze einen Filter auf die Spalte und blende die leeren Zeilen aus.
  • Sortieren: Sortiere die Daten so, dass leere Zeilen am Ende stehen und lösche sie manuell.

Für komplexere Anforderungen könntest du auch ein Excel-Makro verwenden, um mehrere Zeilen gleichzeitig zu löschen oder andere Bedingungen festzulegen.


Praktische Beispiele

  1. Leere Zeilen löschen in einer bestimmten Spalte:

    Sub LeereZeilenSpalteBLoeschen()
        Dim i As Long
        Dim LetzteZeile As Long
        LetzteZeile = Sheets("currentregion").Cells(Rows.Count, 2).End(xlUp).Row
        For i = LetzteZeile To 1 Step -1
            If Sheets("currentregion").Cells(i, 2).Value = "" Then
                Sheets("currentregion").Rows(i).Delete
            End If
        Next i
    End Sub
  2. Alle leeren Zeilen in einer Tabelle löschen:

    Sub AlleLeerenZeilenLoeschen()
        Dim i As Long
        Dim LetzteZeile As Long
        LetzteZeile = Sheets("currentregion").Cells(Rows.Count, 1).End(xlUp).Row
        For i = LetzteZeile To 1 Step -1
            If Application.WorksheetFunction.CountA(Sheets("currentregion").Rows(i)) = 0 Then
                Sheets("currentregion").Rows(i).Delete
            End If
        Next i
    End Sub

Tipps für Profis

  • Nutze Option Explicit am Anfang deines VBA-Codes, um sicherzustellen, dass alle Variablen deklariert sind.
  • Teste deinen Code immer in einer Kopie deiner Datei, um ungewollte Datenverluste zu vermeiden.
  • Verwende Application.ScreenUpdating = False, um die Bildschirmaktualisierung während der Ausführung des Makros zu deaktivieren, was die Performance verbessert.

FAQ: Häufige Fragen

1. Wie lösche ich mehrere Zeilen in Excel VBA? Um mehrere Zeilen in Excel VBA zu löschen, kannst du eine Schleife verwenden, die von der letzten Zeile zur ersten Zeile iteriert. So verhinderst du, dass sich die Zeilen verschieben.

2. Kann ich auch ganze Spalten in VBA löschen? Ja, du kannst ganze Spalten löschen, indem du den folgenden Befehl verwendest:

Sheets("currentregion").Columns("B").Delete

3. Wie lösche ich leere Zeilen in einem bestimmten Bereich? Du kannst das Löschen von leeren Zeilen auf einen bestimmten Bereich beschränken, indem du den Bereich in deinem VBA-Code anpasst.

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