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

Forumthread: Makro leere zellen such Zeile löschen

Makro leere zellen such Zeile löschen
29.09.2005 15:17:25
Achim
Hallo Excel Freunde
Mein Makro sucht nach leere Cellen im Bereich B2:B3000 und löscht die jeweiligen Zeilen. Nun befindet sich eine Formel (Textformel "Links) in den Zellen. Von daher löscht meim Makro gar nichts.:-(
Wer kann das Makro so umschreiben das es auch funzt wenn eine Formel in den Zellen vorhanden ist?

Sub LeereZellenLöschen()
Sheets("Sheet1").Select
Range("A2:A500").Select
Dim i As Long
For i = Selection.Cells(Selection.Cells.Count).Row To 1 Step -1
If ActiveSheet.Cells(i, 1).Value = "" Then
Rows(i).Delete
End If
Next i
End Sub

Danke Gruß achim H.
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Makro leere zellen such Zeile löschen
29.09.2005 15:39:22
u_
Hallo,
1) geht viel einfacher und schneller, ohne Schleife:
Range("A1:A500").specialcells(xlcelltypeblanks).entirerow.delete
2) alle Zeilen mit Formeln in A?
Range("A1:A500").specialcells(xlcelltypeformulas).entirerow.delete
Gruß
Geist ist geil!
AW: Makro leere zellen such Zeile löschen
29.09.2005 16:01:24
Achim
Klappt! Nur leider löscht er mir alle Zeilen die auch die gewünschten Werte anzeigen.
Geht das auch,dass er nur die löscht wo Werte nicht angezeigt werden. Anbei die eingestellte Formel von B2 bis B3000 ( Werte werden angezeigt von B2 bisB800 bis B800 leer aber mit formel dann wieder Werte von 1001 bis 1800 usw.:
Range("B2").Select
ActiveCell.FormulaR1C1 = "=LEFT([DienstplanMV34.xls]Einteiler!RC2,25)"
Gruß achim H.
Anzeige
AW: Makro leere zellen such Zeile löschen
29.09.2005 21:21:04
Uduuh
Hallo,
wenn die Formeln, die "" anzeigen gelöscht werden sollen:
For each c in Range("A1:A500").specialcells(xlcelltypeformulas)
if c.value="" then c.entirerow.delete
next c
Gruß aus’m Pott
Udo

;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Makro zum Löschen leerer Zellen in Excel


Schritt-für-Schritt-Anleitung

Um ein Excel-Makro zum Löschen leerer Zellen zu erstellen, kannst Du den folgenden Code verwenden. Dieser Code durchsucht den Bereich B2:B3000 und löscht die Zeilen, in denen die Zellen leer sind oder nur eine Formel enthalten, die ein leeres Ergebnis liefert.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Klicke auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.
  3. Füge den folgenden Code in das Modul ein:
Sub LeereZellenLöschen()
    Dim i As Long
    Sheets("Sheet1").Select
    For i = 3000 To 2 Step -1
        If IsEmpty(Cells(i, 2).Value) Or Cells(i, 2).Value = "" Then
            Rows(i).Delete
        End If
    Next i
End Sub
  1. Schließe den VBA-Editor und führe das Makro aus, um die leeren Zeilen zu löschen.

Häufige Fehler und Lösungen

  • Fehler: Das Makro löscht keine Zeilen.

    • Lösung: Stelle sicher, dass Du den richtigen Bereich (B2:B3000) angibst. Überprüfe auch, ob die Zellen tatsächlich leer sind oder nur eine Formel enthalten, die ein leeres Ergebnis zurückgibt.
  • Fehler: Alle Zeilen werden gelöscht.

    • Lösung: Überprüfe die Bedingungen im Makro. Stelle sicher, dass Du nur die Zeilen löschst, die tatsächlich leer sind oder eine Formel haben, die ein leeres Ergebnis zeigt.

Alternative Methoden

Du kannst auch die SpecialCells-Methode nutzen, um leere Zellen schnell zu löschen. Dies ist effizienter als eine Schleife.

Sub SchnellLeereZeilenLöschen()
    On Error Resume Next
    Range("B2:B3000").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
    On Error GoTo 0
End Sub

Diese Methode löscht alle Zeilen, in denen Zellen im angegebenen Bereich leer sind.


Praktische Beispiele

Wenn Du Formeln hast, die leere Ergebnisse zurückgeben, kannst Du das folgende Beispiel verwenden:

Sub LeereZellenMitFormelnLöschen()
    Dim c As Range
    On Error Resume Next
    For Each c In Range("B2:B3000").SpecialCells(xlCellTypeFormulas)
        If c.Value = "" Then
            c.EntireRow.Delete
        End If
    Next c
    On Error GoTo 0
End Sub

Diese Methode löscht nur die Zeilen, in denen die Zellen mit einer Formel ein leeres Ergebnis liefern.


Tipps für Profis

  • Backup erstellen: Bevor Du das Makro ausführst, erstelle eine Sicherungskopie Deiner Excel-Datei. So kannst Du im Falle eines Fehlers die Originaldaten wiederherstellen.
  • Verwendung der SpecialCells-Methode: Diese Methode ist effizienter und schneller, besonders bei großen Datenmengen.
  • Anpassung des Bereichs: Passe den Bereich in Deinem Makro an, um nur die relevanten Daten zu bearbeiten.

FAQ: Häufige Fragen

1. Wie kann ich leere Zellen mit einer Formel löschen? Du kannst die SpecialCells-Methode verwenden, um Zellen zu identifizieren, die mit einer Formel leer sind und diese dann löschen.

2. Was mache ich, wenn mein Makro nicht funktioniert? Überprüfe, ob Du den richtigen Bereich angegeben hast und ob die Zellen tatsächlich leer sind oder nur eine Formel enthalten. Stelle sicher, dass Du keine Fehler im VBA-Code hast.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige