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

Forumthread: Inhalt Range/Spalte löschen wenn Zelle leer...?

Inhalt Range/Spalte löschen wenn Zelle leer...?
10.11.2016 17:21:15
Nilo
Moin zusammen,
könnt ihr mir bitte kurz helfen!?
Eine Tabelle
Wenn im Range D18:D517 eine Zelle leer ist
dann ClearContents der gesamten Zeile per Intersect.
Ich wollte das so versuchen aber irgendwie haut das nicht hin.
Was mach ich falsch?
On Error Resume Next
Intersect(Range("A:A, D:D, E:E; F:F"), Range("D18:D517").SpecialCells(xlCellTypeBlanks).EntireRow).ClearContents
On Error GoTo 0
Danke schon mal
Gruß
Nilo
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Inhalt Range/Spalte löschen wenn Zelle leer...?
10.11.2016 17:31:59
Werner
Hallo Nilo,
Public Sub test()
Dim raBereich As Range
Dim raZelle As Range
Application.ScreenUpdating = False
Set raBereich = Sheets("Tabelle1").Range("D18:D517")
For Each raZelle In raBereich
If raZelle = "" Then raZelle.EntireRow.Delete
Next raZelle
Application.ScreenUpdating = True
End Sub
Gruß Werner
Anzeige
AW: entschuldige die späte Antwort! Besten Dank :)
15.11.2016 10:41:01
Nilo
...
Gruß
Nilo
AW: Gerne u. Danke für die Rückmeldung. o.w.T.
15.11.2016 12:56:34
Werner
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Inhalte in Excel-Zeilen löschen, wenn Zellen leer sind


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und die entsprechende Arbeitsmappe.
  2. Öffne den VBA-Editor mit ALT + F11.
  3. Füge ein neues Modul hinzu:
    • Rechtsklick auf „VBAProject (DeineDatei.xlsx)“.
    • Wähle „Einfügen“ > „Modul“.
  4. Kopiere den folgenden VBA-Code in das Modul:

    Public Sub ZeilenLoeschenWennLeer()
       Dim raBereich As Range
       Dim raZelle As Range
       Application.ScreenUpdating = False
       Set raBereich = Sheets("Tabelle1").Range("D18:D517")
    
       For Each raZelle In raBereich
           If raZelle = "" Then raZelle.EntireRow.Delete
       Next raZelle
    
       Application.ScreenUpdating = True
    End Sub
  5. Starte das Makro mit F5 oder über das Excel-Menü.
  6. Überprüfe die Ergebnisse in deiner Tabelle.

Häufige Fehler und Lösungen

  • Fehler: „Laufzeitfehler 1004 – Anwendung oder Objekt definieren“

    • Lösung: Stelle sicher, dass der Blattname im Code (Sheets("Tabelle1")) korrekt ist.
  • Fehler: Zeilen werden nicht gelöscht

    • Lösung: Achte darauf, dass du die korrekten Zellbereiche in Set raBereich = Sheets("Tabelle1").Range("D18:D517") angibst.

Alternative Methoden

  • Benutze die Filterfunktion:

    1. Markiere die Daten in der Tabelle.
    2. Gehe zu „Daten“ > „Filter“.
    3. Filtere nach leeren Zellen in Spalte D.
    4. Markiere die gefilterten Zeilen und lösche sie.
  • Excel-Formel zur Unterstützung:

    • Du kannst auch eine Hilfsspalte erstellen, die anzeigt, ob eine Zelle leer ist, und dann die Zeilen basierend auf dieser Hilfsspalte filtern.

Praktische Beispiele

Angenommen, du hast folgende Daten in den Zellen D18 bis D21:

D
Wert1
Wert3

Nach dem Ausführen des Makros ZeilenLoeschenWennLeer werden die Zeilen mit den leeren Zellen (D19 und D21) gelöscht, sodass nur Werte übrig bleiben.


Tipps für Profis

  • Makros regelmäßig speichern: Stelle sicher, dass du deine Datei als „Excel-Arbeitsmappe mit Makros“ (*.xlsm) speicherst.
  • Verwende Fehlerbehandlung: Füge On Error Resume Next vor kritischen Codezeilen hinzu, um unvorhergesehene Fehler zu vermeiden.
  • Teste deinen Code: Führe den Code zuerst in einer Testdatei aus, um sicherzustellen, dass alles wie gewünscht funktioniert.

FAQ: Häufige Fragen

1. Frage: Wie kann ich das Makro anpassen, um mehrere Spalten zu löschen? Antwort: Du kannst die EntireRow.Delete Zeile entsprechend anpassen, um spezifische Spalten zu löschen. Setze den Bereich in Intersect wie folgt:

Intersect(Range("A:A, B:B"), Range("D18:D517").SpecialCells(xlCellTypeBlanks)).ClearContents

2. Frage: Was mache ich, wenn ich nur die Inhalte und nicht die gesamte Zeile löschen möchte? Antwort: Ändere raZelle.EntireRow.Delete in raZelle.ClearContents, um nur die Inhalte der Zellen zu löschen und die Zeilen beizubehalten.

So kannst du mit einfachen Schritten und VBA-Programmierung in Excel Zellen und Zeilen löschen, wenn Zellen leer sind.

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