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

Forumthread: Makro zum Zeilen löschen

Makro zum Zeilen löschen
28.05.2005 21:37:09
Josef
Hallo zusammen,
möchte mit unten stehenden Makro, alle gefüllten Zeilen wo in Zelle "A" ein Wert drin steht, löschen. (Zeilen nicht Werte) Am besten von unten nach oben, da ich "A1" bis "A7" nicht verändern darf, weil damit immer wieder neu begonnen wird.
Kann mir dabei jemand helfen?
Range(Cells(8, 1), Range("a65336").Offset(1, 0).End(xlUp)).Select
Danke schon mal im Voraus
Gruß Josef
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro zum Zeilen löschen
28.05.2005 21:39:50
Hajo_Zi
Hallo Josef,
hattest Du nicht schon in einem anderen Beitrag geschrieben das dies Problem gelöst ist?
Warum ein neuer Beitrag?
Es Klang im letzten Beitrag auch so das Du froh bist was selbst zu erstellen darfst?
Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.
Betriebssystem XP Home SP2 und Excel Version 2003 SP1.


Anzeige
AW: Makro zum Zeilen löschen
29.05.2005 08:18:43
Hajo_Zi
Hallo Josef,
Du hast nun schon soviele gute Tips von Herbert und Bert bekommen, aber ich möchte Dir nun auch noch einen Code posten. Schneller geht es, wenn Du nicht jede Zeile einzeln löscht.
Option Explicit

Sub Spalte_A()
Dim LoLetzte As Long
Dim LoI As Long
Dim RaZeile As Range
LoLetzte = IIf(IsEmpty(Range("A65536")), Range("A65536").End(xlUp).Row, 65536)
If LoLetzte < 8 Then Exit Sub
For LoI = LoLetzte To 8 Step -1
If Cells(LoI, 1) <> "" Then
If RaZeile Is Nothing Then
Set RaZeile = Rows(LoI)
Else
Set RaZeile = Union(RaZeile, Rows(LoI))
End If
End If
Next LoI
RaZeile.Delete
End Sub

Gruß Hajo
Das Forum lebt auch von den Rückmeldungen.
Anzeige
AW: Makro zum Zeilen löschen
29.05.2005 16:01:42
Josef
Hallo Hajo,
zuerst mal vielen Dank für das Makro.
Ich hätte Dir meine Gedanken (muß ich doch selber hinbekommen), nicht schreiben sollen.
Damit habe ich sicherlich für etwas Verwirrung gesorgt. Sorry!
Gruß Josef
AW: Makro zum Zeilen löschen
28.05.2005 22:58:27
Fred
Hi,
Option Explicit

Sub weg()
Dim z As Long, lz As Long
lz = IIf(Cells(Rows.Count, 1) <> "", Rows.Count, Cells(Rows.Count, 1).End(xlUp).Row)
For z = lz To 9 Step -1
If Not IsEmpty(Cells(z, 1)) Then Rows(z).Delete
Next
End Sub

mfg Fred
Anzeige
AW: Makro zum Zeilen löschen
28.05.2005 23:48:46
Josef
Hallo Fred,
werde wohl Dein Makro verwenden.
Danke Dir für Deine Mühe
Gruß
Josef
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Makro zum Zeilen Löschen in Excel


Schritt-für-Schritt-Anleitung

Um mit einem Excel VBA Makro gefüllte Zeilen zu löschen, befolge diese Schritte:

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

  2. Füge ein neues Modul hinzu: Klicke auf Einfügen > Modul.

  3. Kopiere den folgenden Code in das Modul:

    Sub ZeilenLoeschen()
       Dim LoLetzte As Long
       Dim LoI As Long
       Dim RaZeile As Range
       LoLetzte = IIf(IsEmpty(Range("A65536")), Range("A65536").End(xlUp).Row, 65536)
       If LoLetzte < 8 Then Exit Sub
       For LoI = LoLetzte To 8 Step -1
           If Cells(LoI, 1) <> "" Then
               If RaZeile Is Nothing Then
                   Set RaZeile = Rows(LoI)
               Else
                   Set RaZeile = Union(RaZeile, Rows(LoI))
               End If
           End If
       Next LoI
       RaZeile.Delete
    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 ZeilenLoeschen und klicke auf Ausführen.

Dieses Makro löscht alle gefüllten Zeilen unterhalb der Zeile 7, basierend auf den Werten in Spalte A.


Häufige Fehler und Lösungen

  • Fehler: "Typenkonflikt"
    Lösung: Stelle sicher, dass Du die richtige Zeilennummer verwendest. Prüfe, ob die Spalte A tatsächlich gefüllt ist.

  • Fehler: "Index außerhalb des gültigen Bereichs"
    Lösung: Überprüfe die Range, um sicherzustellen, dass Du innerhalb der Grenzen der Tabelle arbeitest. Achte darauf, dass die Zellen in Spalte A nicht leer sind.


Alternative Methoden

Falls Du kein VBA nutzen möchtest, kannst Du auch die Filterfunktion von Excel verwenden:

  1. Markiere die gesamte Tabelle.
  2. Gehe zu Daten > Filter.
  3. Setze einen Filter auf Spalte A, um alle leeren Zellen auszublenden.
  4. Wähle die sichtbaren Zeilen aus und lösche sie.

Diese Methode ist einfacher, benötigt jedoch manuelle Eingriffe.


Praktische Beispiele

Hier sind zwei Varianten von Makros, um Zeilen in Excel zu löschen:

  1. Das Grundlegende Makro:

    Sub EinfachesLoeschen()
       Dim z As Long
       For z = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
           If Not IsEmpty(Cells(z, 1)) Then
               Rows(z).Delete
           End If
       Next z
    End Sub
  2. Ein Makro zur Löschung basierend auf einem Kriterium:

    Sub KriteriumLoeschen()
       Dim i As Long
       For i = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
           If Cells(i, 1).Value < 10 Then
               Rows(i).Delete
           End If
       Next i
    End Sub

Tipps für Profis

  • Performance verbessern: Wenn Du viele Zeilen löschen möchtest, setze Application.ScreenUpdating = False am Anfang des Makros und Application.ScreenUpdating = True am Ende. Das beschleunigt den Prozess.

  • Fehlerprotokollierung: Füge eine Fehlerbehandlung hinzu, um zu verhindern, dass das Makro bei einem Fehler stoppt. Beispiel:

    On Error Resume Next
  • Makro anpassen: Du kannst das Makro einfach anpassen, um auch Spalten zu löschen, indem Du Columns("B:B").Delete hinzufügst.


FAQ: Häufige Fragen

1. Wie kann ich ein Makro speichern?
Um ein Makro zu speichern, speichere die Excel-Datei im Format Excel-Arbeitsmappe mit Makros (*.xlsm).

2. Was mache ich, wenn das Makro nicht funktioniert?
Überprüfe den Code auf Tippfehler und stelle sicher, dass Du die richtigen Zellreferenzen verwendest. Teste das Makro schrittweise im VBA-Editor.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige