Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

leere Zeilen aus Tabelle automatisch löschen





Frage

Hallo! Ich habe folgendes Problem: Ich muss eine riesige Excel-Tabelle bearbeiten, in der jedoch manche Zeilen leer sind. Diese würde ich gerne rauslöschen, jedoch ohne jede Zeie einzeln durchgehen zu müssen... Meine Idee ist wie folgt: Ich könnte für jede Zeile die Summe bilden (die Tabelle besteht aus positiven Zahlen) und dann mit praktisch die Zeilen löschen lassen, in denen die Summe gleich 0 ist, da diese Zeilen leer sein müssen. Meine Frage ist nun, wie ich das in ein Makro packen kann? Lieben Dank!

Antwort 1 von coros

Hi Mia,

folgendes Makro löscht leeren Zeilen, wenn in Spalte A in der jeweiligen Zeile kein Eintrag vorhanden ist. Kopiere das makro in ein Standardmodul.

Sub Leerzeilenlöschen()
Dim Zeile As Long
Application.ScreenUpdating = False
Zeile = Range("S65536").End(xlUp).Row
Range("A1:A" & Zeile).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub

Wenn Du ein anderes Kriterium als Spalte A haben willst, dann mußt Du in der Zeile

Range("A1:A" & Zeile).SpecialCells(xlCellTypeBlanks).EntireRow.Delete


die Spaltenbezeichnungen ändern.

Test das amkro aber bitte erst einmal in einer Kopie Deiner Datei. Nicht dass wenn irgendwas nicht so funktioniert, Deine Datei eventuell verloren ist.

Da ich nicht weiß, ob Du Dich mit VBA (Visual Basic) auskennst, kommt hier eine kurze Anweisung, wie Du den Code in Deine Tabelle bekommst.

1. Markiere die Anweisung aus diesem Beitrag und Kopiere (Strg c) diesen.

2. Klicke in Deiner Exceldatei in der Menüleiste nacheinander auf Extras => Makro => Visual Basic Editor oder drücke die Tastenkombination Alt F11

3. In dem neu geöffneten Fenster suche auf der linken Seite nach dem Eintrag VBA Projekt(Hier der Name Deiner Tabelle) und klicke doppelt auf diesen Eintrag

4. Klicke danach nacheinander in der Menüleiste auf Einfügen => Modul.

5. Füge nun die vorher kopierte Anweisung in das rechte leere Fenster ein.

Starten kannst Du das makor z.B. über eine Schaltfläche. Da ich nicht weiß, ob Du weißt, wie man eine Befehlsschaltfläche in ein Tabellenblatt einfügst, kommt hier eine kurze Anweisung.

1. Gehe in der Menüleiste auf Ansicht => Symbolleiste => Steuerelement-Toolbox

2. Klicke auf die 6.Schaltfläche von links (Schaltflächenkommentar: Befehlsschaltfläche)

3. Positioniere die Schaltfläche in Deinem Tabellenblatt und passe gegebenenfalls die Größe an.

4. Klicke in der Symbolleiste auf die 3.Schaltfläche von links (Schaltflächenkommentar: Code anzeigen).

5. In das geöffnete Fenster schreibst Du zwischen die Texte “Private Sub CommandButton1_Click()“ und “End Sub“ in die Leerzeile Call Makroname oder nur der Makroname.

6. Klicke in der Symbolleiste auf die erste Schaltfläche von links um den Entwurfmodus zu beenden (Schaltflächenkommentar: Entwurfmodus beenden).

Wenn Du alles richtig gemacht hast, sollte das Makro, nachdem Du die Schaltfläche betätigt hast, abgearbeitet werden.

Du solltest zum Abschluss noch die Sicherheitseinstellung, die beim Öffnen der Datei abgefragt wird, kontrollieren. Klicke dazu nacheinander in der Menüleiste wieder auf Extras => Makro und dann auf Sicherheit.... Gehe, falls nicht schon angezeigt, auf die Registerkarte Sicherheitsstufe und schaue dort nach, ob die Einstellung Mittel aktiviert ist. Wenn nicht, aktiviere diese Einstellung, da sonst der Code nicht ausgeführt werden kann. Beim nächsten Öffnen Deiner Datei kommt eine Abfrage, ob Makros aktiviert oder deaktiviert werden sollen. Klicke auf aktivieren und der Code wird ausgeführt.

MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 2 von mapet

Hallo
einfacher und schneller geht es damit (wenn in einer spalte immer eine Zahl ist Bsp. A)

Daten markieren Menu Date - Filter - Autofilter
Spalte A auf dropdown alle leere auswählen. gefilterte Zeilen löschen

Gruss mapet

Antwort 3 von Guenter

Hallo,

es gibt wahrscheinlich mehrere Möglichkeiten.
Du könntest rechts noch eine spalte einfügen und
die Summe bilden, z.B. =SUMME(A2:E2).Statt E2 muss Deine letzte Spalte dort stehen, dann herunterziehen bis in die letzte Reihe.
Jetzt folgendes Makro laufen lassen.:

Option Explicit

Sub test()
  Dim n%
  For n = Cells(Rows.Count, 6).End(xlUp).Row To 1 Step -1
    If Cells(n, 6).Value = 0 Then Rows(n).Delete Shift:=xlUp
  Next n
End Sub

Spalte E ist die 6 im code. Das muss noch entsprechend geändert werden.

Wie gesagt, es gibt noch andere Möglichkeiten.

Gruß
GÜnter