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

Forumthread: Leere Zeilen aus bestimmtem Bereich löschen

Leere Zeilen aus bestimmtem Bereich löschen
Wolfgang
Hallo, liebe Excel-Experten !
Ich stehe mal wieder mit einem VBA-Problem auf dem Schlauch.
Im Forum und im Internet habe ich bisher keine Lösung für dieses Problem gefunden.
Im Rahmen eines laufenden VBA-Makros möchte ich im fest definierten Bereich A1 bis C10
alle leeren Zeilen löschen.
Das bedeutet, in den Spalten A bis C sind verschieden lange Einträge.
Nur wenn sowohl in spalte A, B und C, also in der gesamten Zeile des Bereiches
kein Eintrag vorhanden ist, soll die gesamte Zeile gelöscht und der darunterliegende Bereich
zeilenweise nach oben verschoben werden.
Mein Ziel ist es, diesen Tabellenbereich möglichst optimal zu komprimieren, ohne das Zeilen,
in denen Einträge vorhanden sind, gelöscht werden.
A1 B1 C1
A2 B2 C2
A4 B4 C4
B5 C5
A6 B6 C6
A7 B7 C7
A8 C8
A10 B10 C10
Die Lösungsansätze, die ich bisher fand, durchsuchen entweder nur eine Spalte oder
gehen bis an das Tabellenende, statt wie hier nur bis zur 10. Zeile.
Ich bitte freundlich um Unterstützung und wünsche ein schönes Wochenende !
Viele Grüße
Wolfgang
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Leere Zeilen aus bestimmtem Bereich löschen
18.06.2010 16:33:56
Beate
Hallo Wolfgang,
Sub Leerzeilen_loeschen()
    'im Bereich A1:C10
    Dim i As Long ' Zeilenzähler
    Application.ScreenUpdating = False ' Bildschirmausgaben abschalten
    For i = 10 To 1 Step -1 'ab Zeile 10 aufwärts Prüfung bis Zeile 1
        If (Application.WorksheetFunction.CountA(Range(Cells(i, 1), Cells(i, 3))) = 0) Then Rows(i).Delete
        If i Mod 100 = 0 Then Application.StatusBar = i
    Next i
    Application.StatusBar = False ' Statuszeile wieder ans Excel zurückgeben
    Application.ScreenUpdating = True ' Bildschirmausgaben einschalten
End Sub

Gruß,
Beate
Anzeige
AW: Leere Zeilen aus bestimmtem Bereich löschen
18.06.2010 16:51:25
Wolfgang
Hallo Beate !
Danke für die schnelle Rückantwort.
Ich habe es eben getestet - Das ist genau, was ich gesucht habe !
Vielen Dank nochmal und ein besonders schönes Wochenende !
(Trotz der Schlappe beim WM-Spiel ;-)
Gruß
Wolfgang
;

Forumthreads zu verwandten Themen

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 im Excel-Bereich effizient löschen


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und drücke Alt + F11, um den VBA-Editor zu starten.

  2. Füge ein neues Modul ein:

    • Klicke im Menü auf Einfügen > Modul.
  3. Kopiere den folgenden VBA-Code in das Modul:

    Sub Leerzeilen_loeschen()
       Dim i As Long  ' Zeilenzähler
       Application.ScreenUpdating = False  ' Bildschirmausgaben abschalten
       For i = 10 To 1 Step -1  ' ab Zeile 10 aufwärts Prüfung bis Zeile 1
           If (Application.WorksheetFunction.CountA(Range(Cells(i, 1), Cells(i, 3))) = 0) Then
               Rows(i).Delete
           End If
           If i Mod 100 = 0 Then Application.StatusBar = i
       Next i
       Application.StatusBar = False  ' Statuszeile wieder ans Excel zurückgeben
       Application.ScreenUpdating = True  ' Bildschirmausgaben einschalten
    End Sub
  4. Schließe den VBA-Editor und kehre zu deinem Excel-Arbeitsblatt zurück.

  5. Starte das Makro:

    • Drücke Alt + F8, wähle Leerzeilen_loeschen aus und klicke auf Ausführen.

Dieser Code durchsucht den definierten Bereich A1 bis C10 und löscht alle leeren Zeilen, sodass nur die Zeilen mit Einträgen übrig bleiben.


Häufige Fehler und Lösungen

  • Problem: "Excel leere Zeilen am Ende lassen sich nicht löschen."

    • Lösung: Stelle sicher, dass du im richtigen Bereich arbeitest und die richtige Zeilenanzahl angibst (z.B. A1:C10).
  • Problem: "Das Makro funktioniert nicht."

    • Lösung: Überprüfe, ob du die Makros in Excel aktiviert hast. Gehe zu Datei > Optionen > Trust Center > Einstellungen für das Trust Center und aktiviere die Makros.

Alternative Methoden

  • Excel Formel: Du kannst auch eine Formel verwenden, um leere Zeilen zu identifizieren. Nutze beispielsweise:

    =WENN(UND(A1="", B1="", C1=""), "Leer", "Belegt")

    Diese Formel zeigt "Leer" an, wenn alle drei Zellen in einer Zeile leer sind.

  • Power Query: Eine weitere Möglichkeit ist die Verwendung von Power Query, um leere Zeilen zu entfernen. Importiere deine Daten und nutze die Funktion zum Entfernen von leeren Zeilen.


Praktische Beispiele

  • Beispiel 1: Wenn du einen Bereich A1:C10 mit gemischten Daten hast und nur die leeren Zeilen entfernen möchtest, führe das oben genannte Makro aus.
  • Beispiel 2: Falls du die leere Zeilen löschen möchtest, aber einige Zeilen am Ende behalten willst, ändere die Range im Code entsprechend, z.B. Range("A1:C20").

Tipps für Profis

  • Verwende den Befehl "Anpassen" in Excel, um das Makro schnell zu starten.
  • Setze Tastenkombinationen für deine Makros, um die Effizienz zu steigern.
  • Teste das Makro zuerst in einer Kopie deiner Datei, um Datenverlust zu vermeiden.

FAQ: Häufige Fragen

1. Kann ich das Makro auch für andere Bereiche verwenden? Ja, ändere einfach die Range im Code, um andere Bereiche zu definieren.

2. Wie kann ich das Makro anpassen, um nur leere Zellen zu löschen, nicht ganze Zeilen? Du kannst den Code anpassen, um nur die leeren Zellen in einem bestimmten Bereich zu löschen, indem du die Cells(i, j).Delete-Anweisung verwendest.

3. Funktioniert das auch in älteren Excel-Versionen? Ja, der VBA-Code sollte in den meisten Versionen von Excel funktionieren, die VBA unterstützen.

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