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

Zeilen löschen, wenn Zelle bestimmten Inhalt hat

Forumthread: Zeilen löschen, wenn Zelle bestimmten Inhalt hat

Zeilen löschen, wenn Zelle bestimmten Inhalt hat
14.02.2007 12:31:18
Matthias
Hallo,
folgendes möchte ich realisieren: Ich habe eine Tabelle mit vielen Zeilen. In manchen Zeilen steht in Spalte E der Zellinhalt "n.v." für "nicht vorhanden". Die Zeilen, in denen das der Fall ist, sollen gelöscht werden.
Kann man dies in VBA umsetzen?
Danke
Matthias
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen löschen, wenn Zelle bestimmten Inhalt hat
14.02.2007 12:35:06
Rudi Maintaire
Hallo,
ja, kann man und ist auch schon 1000x beantwortet worden.
Bemüh' doch mal die Suche. Suchbegriff 'Zeilen löschen'
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe
AW: Zeilen löschen, wenn Zelle bestimmten Inhalt hat
14.02.2007 13:20:42
Matthias
Hi,
ich habe noch mal intensiv gesucht, finde aber für genau dieses Problem keinen funktionierenden VBA-Code. Da ich nicht VBA-fit bin, bräuchte ich passenden Code...
Matthias
Anzeige
AW: Zeilen löschen, wenn Zelle bestimmten Inhalt hat
14.02.2007 13:25:53
Rudi Maintaire
Hallo,
in ein Modul:

Sub nvloeschen()
Dim i As Long
Application.ScreenUpdating = False
For i = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
If Cells(i, 5) = "n.v." Then Rows(i).Delete
Next i
Application.ScreenUpdating = True
End Sub
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe
Anzeige
AW: Zeilen löschen, wenn Zelle bestimmten Inhalt hat
14.02.2007 13:35:36
Matthias
Hi,
danke erst mal. Habe Deinen Code ausprobiert. Es kommt keine Fehlermeldung, es wird aber auch keine Zeile mit "n.v." gelöscht. Weiß im Moment nicht, warum...
Matthias
AW: Zeilen löschen, wenn Zelle bestimmten Inhalt hat
14.02.2007 16:24:24
Franc
Das ist Rudi ein kleiner Fehler unterlaufen. ^^
Sein Makro sucht in der 1. Spalte die letzte benutzte Zelle.
Wenn aber in der 1. Spalte nix steht, prüft er auch nix.
Nimm mal das (nur eine Zahl abgeändert ^^)

Sub nvloeschen()
Dim i As Long
Application.ScreenUpdating = False
For i = Cells(Rows.Count, 5).End(xlUp).Row To 1 Step -1
If Cells(i, 5) = "n.v." Then Rows(i).Delete
Next i
Application.ScreenUpdating = True
End Sub

Anzeige
AW: Zeilen löschen, wenn Zelle bestimmten Inhalt hat
14.02.2007 17:32:56
Matthias
Hi,
danke, aber funktioniert leider auch nicht. Wahrscheinlich weil in der ersten Spalte nicht überall Werte stehen in den Zeilen, die gelöscht werden sollen. Besser wäre es, wenn Excel in der 4. Spalte nach der zuletzt benutzten Zelle suchen würde. Geht das?
Matthias
AW: Zeilen löschen, wenn Zelle bestimmten Inhalt hat
14.02.2007 19:56:07
Franc
Es ging doch um Spalte E oder?
i = Cells(Rows.Count, 5).End(xlUp).Row
i muss einen Wert erhalten und das machen wir flexibel, indem wir ihm sagen er soll die letzte beschriebene Zeile in Spalte 5 (E) nehmen.
Anzeige
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Zeilen löschen bei bestimmten Inhalten in Excel


Schritt-für-Schritt-Anleitung

Um in Excel Zeilen zu löschen, wenn eine Zelle einen bestimmten Inhalt hat, kannst Du VBA nutzen. Hier ist eine einfache Schritt-für-Schritt-Anleitung, wie Du dies umsetzen kannst:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke im Menü auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.

  3. Kopiere den folgenden VBA-Code in das Modul:

    Sub nvloeschen()
       Dim i As Long
       Application.ScreenUpdating = False
       For i = Cells(Rows.Count, 5).End(xlUp).Row To 1 Step -1
           If Cells(i, 5) = "n.v." Then Rows(i).Delete
       Next i
       Application.ScreenUpdating = True
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Drücke ALT + F8, wähle nvloeschen aus der Liste und klicke auf Ausführen.

Dieser Code sucht in der fünften Spalte (Spalte E) nach dem Inhalt "n.v." und löscht die entsprechenden Zeilen.


Häufige Fehler und Lösungen

  • Fehler: Es wird keine Zeile gelöscht.

    • Lösung: Überprüfe, ob in der richtigen Spalte nach dem Inhalt gesucht wird. Der Code nutzt die fünfte Spalte (E). Stelle sicher, dass der Zellinhalt, den Du suchst, genau übereinstimmt, inklusive Groß- und Kleinschreibung.
  • Fehler: Fehlermeldung beim Ausführen des Codes.

    • Lösung: Stelle sicher, dass der Code korrekt kopiert wurde und keine Syntaxfehler enthält. Überprüfe auch, ob das richtige Modul ausgewählt ist.

Alternative Methoden

Falls Du keine VBA-Lösungen verwenden möchtest, gibt es auch alternative Methoden zum Löschen von Zeilen mit bestimmten Inhalten:

  1. Filter verwenden: Du kannst die Filterfunktion in Excel nutzen, um alle Zeilen mit dem Inhalt "n.v." anzuzeigen und diese dann manuell zu löschen.
  2. Bedingte Formatierung: Mit bedingter Formatierung kannst Du Zellen hervorheben, die bestimmte Werte enthalten. Danach kannst Du die Zeilen, die diese Zellen enthalten, manuell löschen.

Praktische Beispiele

Nehmen wir an, Du hast eine Tabelle mit verschiedenen Daten und möchtest alle Zeilen löschen, in denen in Spalte E "n.v." steht. Der oben genannte VBA-Code funktioniert dafür hervorragend.

Wenn Du jedoch mehrere Inhalte hast, die Du überprüfen möchtest, kannst Du den Code anpassen:

Sub mehrereWerteLoeschen()
    Dim i As Long
    Application.ScreenUpdating = False
    For i = Cells(Rows.Count, 5).End(xlUp).Row To 1 Step -1
        If Cells(i, 5) = "n.v." Or Cells(i, 5) = "x" Then Rows(i).Delete
    Next i
    Application.ScreenUpdating = True
End Sub

Dieser Code löscht alle Zeilen, die entweder "n.v." oder "x" in Spalte E enthalten.


Tipps für Profis

  • Automatisierung: Du kannst den VBA-Code anpassen, um ihn automatisch bei bestimmten Aktionen auszuführen, z.B. beim Öffnen der Datei oder beim Ändern von Zellen.
  • Backup: Immer eine Kopie Deiner Daten sichern, bevor Du Massenänderungen vornimmst.
  • Zelleninhalt löschen: Wenn Du nur den Inhalt einer Zelle löschen möchtest, kannst Du den folgenden Befehl verwenden:

    Cells(i, 5).ClearContents

FAQ: Häufige Fragen

1. Wie kann ich den Code an meine Bedürfnisse anpassen?
Du kannst den Zellbereich und den gesuchten Inhalt im Code ändern. Achte darauf, die richtige Spaltennummer zu verwenden.

2. Funktioniert der Code in allen Excel-Versionen?
Ja, der VBA-Code funktioniert in den meisten modernen Excel-Versionen, solange die VBA-Funktionalität unterstützt wird.

3. Was mache ich, wenn ich mehrere Inhalte gleichzeitig löschen möchte?
Du kannst die If-Bedingung im VBA-Code erweitern, um mehrere Werte zu überprüfen, wie im Beispiel oben gezeigt.

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