Anleitung zum Löschen jeder zweiten Zeile eines Excel-Tabellenblattes mit Hilfe von VBA oder der Filterfunktion.
Gerade bei der Bearbeitung größerer Datenmengen kommt es in Microsoft Excel häufiger vor, dass während eines Imports unerwünschte Datensätze oder Leerzeilen mit in die Tabelle gelangen, die vor einer Weiterverarbeitung entfernt werden müssen. Per Hand gestaltet sich der Vorgang allerdings meist sehr mühsam und zeitaufwändig. Einfacher geht es mit einem Makro oder mit Hilfe der Filterfunktion. In diesem Tipp zeigen wir Ihnen, wie Sie damit beispielsweise jede zweite Zeile eines Excel-Tabellenblattes löschen können.
Inhalt
1. Entwicklertools einblenden
Zum Erstellen von Makros oder Schreiben von VBA-Anwendungen benötigen Sie zuerst die Registerkarte Entwicklertools, die in den Office-Programmen standardmäßig nicht angezeigt wird. Sie kann aber mit wenigen Mausklicks zum Menüband hinzugefügt werden:
- Gehen Sie auf „Datei -> Optionen“.
- Das Dialogfenster „Excel-Optionen“ öffnet sich. Wählen Sie hier links im Menü den Eintrag „Menüband anpassen“ aus.
- Setzen Sie nun im Fenster rechts unter „Hauptregisterkarten“ das Häkchen bei „Entwicklertools“ und bestätigen Sie Ihre Eingabe mit „OK“.
2. Jede zweite Zeile des aktiven Tabellenblattes mit VBA löschen
Gut zu wissen: Microsoft Office bringt einen eigenen, integrierten Editor für VBA („Visual Basic für Applications“) mit, den Sie in Excel über die Tastenkombination „Alt + F11“ oder über „Entwicklertools -> Visual Basic“ aufrufen können.
- Öffnen Sie den VBA-Editor und klicken Sie im Menü auf „Einfügen -> Modul“ um ein neues Modul im Projektbaum anzulegen.
- Geben Sie nun den folgenden Code in das Editor-Fenster ein:
Sub Jede_zweite_Zeile_loeschen() Dim z_anfang As Long, z_ende As Long z_ende = Cells(1, 1).CurrentRegion.Rows.Count \ 2 + 1 z_anfang = 1 Application.ScreenUpdating = False Do z_anfang = z_anfang + 1 Rows(z_anfang).Delete Loop Until z_anfang = z_ende Application.ScreenUpdating = True End Sub
- Schließen Sie den VBA-Editor und speichern Sie gegebenenfalls das Tabellenblatt. Das neu erstellte Makro können Sie nun über „Entwicklertools -> Makros“ ausführen.
3. Jede zweite Zeile in Excel mit Hilfe von Formeln und Filterfunktionen löschen
Eine Alternative, mit der Sie jede zweite Zeile auch ohne Makro oder den Einsatz von VBA löschen können, ist das Anlegen einer Hilfsspalte, über die Sie die Datensätze filtern.
Markieren Sie dazu die oberste Zelle der ersten leeren Spalte neben den Originaldaten (in unserem Beispiel handelt es sich dabei um die Zelle E2) und geben Sie dort die Formel
=REST(ZEILE();2)
ein. Bestätigen Sie mit der Eingabetaste. Excel legt nun automatisch eine neue Spalte an und klassifiziert die einzelnen Zeilen, indem es als Inhalt entweder 0 oder 1 in die Zellen einträgt.
Gehen Sie nun auf die Registerkarte „Daten“ und wählen Sie die Funktion „Filtern“ aus. Nun erscheint neben den Spaltennamen ein kleiner Pfeil.
Klicken Sie auf den Pfeil neben dem Namen der Hilfsspalte und deaktivieren Sie alle Häkchen bis auf das neben der 1. Sie erhalten nun eine gefilterte Liste, in der nur noch jede zweite Zeile angezeigt wird. Diese können Sie nun markieren und die Inhalte anschließend in einem Rutsch löschen.
Entfernen Sie anschließend den Filter wieder über einen erneuten Klick auf die Schaltfläche „Filtern“.