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

Forumthread: Wenn Zelle leer, dann Tabellen Zeile

Wenn Zelle leer, dann Tabellen Zeile
19.02.2021 21:51:29
Seher
Hallo,
Ich habe ein Problem und zwar
möchte ich nachdem meine Tabelle mit einem Makro ausgefüllt wurden (je nachdem welche Werte gewählt wurden) mit einem anderen Makro die leeren Zeilen nach oben verschieben, welche nicht gefüllt wurden.
Ich hab schon etwas versucht aber es klappt iwie nicht.
Dim i as Long
with worksheets("Tabelle1")
for i =1 to 10
   if ListObjects(1).ListRows.Value = "" Then
(Ich möchte hier sagen wenn die Zeile der Tabelle leer ist)
ListObjects(1).ListRows.Delete
. (Dann soll die Zeile gelöscht werden )
next i
end with
Aber das funktioniert gar nicht
Ich weiß auch nicht wie ich da ran gehen soll.Würde mich über Hilfe sehr freuen
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Wenn Zelle leer, dann Tabellen Zeile
19.02.2021 23:57:35
ralf_b
Hallo,
Listrows(i) dann hast du die Zeile. aber noch nicht die Information ob alle Zellen drin leer sind.
Listrows(i).Range damit gehts zu den Zellen.
evtl kann man über specialcells(xlcelltypeblanc) feststellen ob die ganze Zeile leer ist.
mehr infomationen zu listobjects()
https://www.thespreadsheetguru.com/blog/2014/6/20/the-vba-guide-to-listobject-excel-tables
Anzeige
AW: Wenn Zelle leer, dann Tabellen Zeile
24.02.2021 13:44:18
Seher
Ich habe jetzt einen Code gefunden/geschrieben
If IsEmpty(Range("A99")) = True Then
'Cell A2 is blank
Sheets("Protokoll").ListObjects("Tabelle1476").ListRows(4).Delete
End If
Leider bekomme ich eine Fehlermeldung mit
"Laufzeitfehler"1004"
"Das wird nicht funktionieren, weil dadurch Zellen in einer Tabelle in Ihrem Arbeitsblatt verschoben würden"
Hast du eventuell eine Idee was ich dagegen machen kann?
Anzeige
AW: Wenn Zelle leer, dann Tabellen Zeile
24.02.2021 18:18:33
ralf_b
tut mir leid, aber da gibts einige Möglichkeiten. Im Grunde sollte das aber gehen mit der delete methode.
Du hast geschrieben das ein Makro deine Datei füllt. und dieses soll die Leerzeilen entfernen. Warum modifizierst du nicht das erste Makro damit gar keine Leerzeilen entstehen?
gruß
rb
Anzeige
AW: Wenn Zelle leer, dann Tabellen Zeile
26.02.2021 09:40:51
Seher
Ich kann das leider nicht. Man erwartet von mir, dass ich es mache, aber meine Kenntnisse reichen dafür leider nicht aus.
Ich kann nur das Kopieren
Worksheets(1).Range ("").Value =Worksheets(i).Range("").Value
Aber Danke für dein Hilfe :)
AW: Wenn Zelle leer, dann Tabellen Zeile
26.02.2021 13:56:11
ralf_b
das ist schon ein Drama mit den Leuten, die von Dir so was Unmögliches erwarten. Wie kommen die denn darauf das du dazu in der Lage bist?
Range ("") ist mist. Range("Bezeichnung einer Zellkordinate z.b. A1"). So benutzt man Range.
gruß
rb
Anzeige
;

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 in Excel-Tabellen mit VBA entfernen


Schritt-für-Schritt-Anleitung

Um leere Zeilen in einer Excel-Tabelle mithilfe von VBA zu entfernen, kannst du folgenden Code verwenden. Dieser Code überprüft jede Zeile und löscht sie, wenn alle Zellen leer sind.

Sub EntferneLeereZeilen()
    Dim i As Long
    With Worksheets("Tabelle1")
        For i = .ListObjects(1).ListRows.Count To 1 Step -1
            If Application.WorksheetFunction.CountA(.ListObjects(1).ListRows(i).Range) = 0 Then
                .ListObjects(1).ListRows(i).Delete
            End If
        Next i
    End With
End Sub

Dieser Code geht die Zeilen von unten nach oben durch, um Probleme zu vermeiden, die auftreten, wenn Zeilen gelöscht werden, während man von oben nach unten iteriert.


Häufige Fehler und Lösungen

  1. Laufzeitfehler "1004":

    • Problem: "Das wird nicht funktionieren, weil dadurch Zellen in einer Tabelle in Ihrem Arbeitsblatt verschoben würden."
    • Lösung: Stelle sicher, dass du die Zeilen von unten nach oben durchgehst, wie im obigen Code gezeigt.
  2. Falscher Tabellenname:

    • Problem: Wenn der Name der Tabelle nicht korrekt ist, wird der Code nicht funktionieren.
    • Lösung: Überprüfe den Namen der Tabelle und passe ihn im Code an.
  3. Nicht alle Zellen werden erkannt:

    • Problem: Wenn du nur eine bestimmte Zelle überprüfst, kannst du möglicherweise leere Zeilen übersehen.
    • Lösung: Verwende CountA, um sicherzustellen, dass alle Zellen in der Zeile überprüft werden.

Alternative Methoden

Du kannst auch die Funktion SpecialCells verwenden, um leere Zellen zu identifizieren und sie dann zu löschen. Hier ist ein Beispiel:

Sub LeereZeilenMitSpecialCellsEntfernen()
    Dim ws As Worksheet
    Set ws = Worksheets("Tabelle1")

    On Error Resume Next
    ws.ListObjects(1).Range.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
    On Error GoTo 0
End Sub

Diese Methode ist schneller, da sie direkt mit leeren Zellen arbeitet und sie in einem Schritt löscht.


Praktische Beispiele

  • Beispiel 1: Wenn du eine Tabelle hast, die regelmäßig aktualisiert wird und leere Zeilen enthält, kannst du den oben genannten VBA-Code in eine Schaltfläche einfügen. So kannst du die leeren Zeilen mit einem Klick entfernen.

  • Beispiel 2: Verwende die Bedingte Formatierung, um leere Zellen in einer bestimmten Farbe hervorzuheben. Das hilft dir, die leeren Zeilen visuell zu identifizieren, bevor du sie löschst.


Tipps für Profis

  • Automatisierung: Integriere den Code zur Entfernung leerer Zeilen in dein bestehendes Makro, das die Tabelle füllt. So kannst du sicherstellen, dass keine leeren Zeilen entstehen.

  • Fehlerbehandlung: Füge Error-Handling in deinen VBA-Code ein, um unerwartete Fehler abzufangen und eine benutzerfreundliche Fehlermeldung auszugeben.


FAQ: Häufige Fragen

1. Wie kann ich leere Zeilen in einer bestimmten Spalte entfernen?
Du kannst die Methode CountA anpassen, um nur die gewünschte Spalte zu überprüfen.

2. Was passiert, wenn ich eine Zeile lösche und sie später wieder benötige?
Wenn du eine Zeile löschst, wird sie permanent entfernt. Stelle sicher, dass du ein Backup deiner Daten hast, bevor du den Code ausführst.

3. Kann ich eine Farbe für leere Zeilen einstellen, bevor ich sie lösche?
Ja, du kannst Interior.Color verwenden, um leere Zellen zu markieren, bevor du sie löschst.

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