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

Forumthread: Zeilen löschen, wenn Bedingung in Spalte erfüllt

Zeilen löschen, wenn Bedingung in Spalte erfüllt
05.11.2004 09:52:24
Os
Guten Morgen, zusammen,
In einem benannten Bereich, den ich mit Application.Goto Reference:="BT" aufrufe, sollen all jene Zeilen gelöscht werden, bei denen in Spalte T [Column20] der String 'umme' vorkommt. Kann mir dabei bitte jemand helfen, vielen herzlicehn Dank.
LG, Iris
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Zeilen löschen, wenn Bedingung in Spalte erfüllt
AndréL.
Hallo Iris,
versuche diesen Code einzubauen, oder
seperat auszuführen.

Sub löschen()
Dim i
For i = Cells(Rows.Count, 20).End(xlUp).Row To 1 Step -1
On Error Resume Next
If Cells(i, 20).Value = "umme" Then
Rows(i).Delete
End If
Next
End Sub

Gruß
AndréL.
PS. Rückmeldung wäre nett
Anzeige
AW: Zeilen löschen, wenn Bedingung in Spalte erfüllt
05.11.2004 13:19:54
Os
Lieber André, vielen Dank und sorry für die späte Meldung, bin am Arbeitsplatz, da kommt halt immer was quer...
Leider komme ich mit deinem Vorschlag nicht weit, es tut sich gar nix, nicht mal Fehlermeldung. Könnten wir uns missverstanden haben? Es gibt keine Zellen mit Inhalt gleich umme, aber mit Inhalt ENTHÄLT (Teilstring) 'umme'... Ich vermute, es liegt am
.Value = "umme"
Wie kann ich statt Gleichheitszeichen das 'enthält' ausdrücken? Vieln Dank vorab!
LG, Iris
Anzeige
AW: Zeilen löschen, wenn Bedingung in Spalte erfüllt
AndréL.
Hallo Iris,
hatte auch erst jetzt wieder Gelegenheit zu testen,
aber so müßte es laufen: (Ohne Gewähr!)

Sub löschen()
Dim i
For i = Cells(Rows.Count, 20).End(xlUp).Row To 1 Step -1
On Error Resume Next
If InStr(Cells(i, 20).Value, "umme") Then
Rows(i).Delete
End If
Next
End Sub

Gruß
AndréL.
Anzeige
AW: Zeilen löschen, wenn Bedingung in Spalte erfül
05.11.2004 19:24:16
Os
Hallo, André,
inzwischen von daheim aus:
habe die Hilfe zu InStr bemüht, bin nicht 'draus schlau geworden, aber dein Code hat funktioniert! Herzlichen Dank.
Schönen Abend, Iris
Danke für die Rückmeldung !! :-) mT.
AndréL.
Hallo Iris,
Soooooo gut kenne ich mich mit VBA auch (noch) nicht aus,
ich habe einfach :
1. Probiert
2. In der hervorragenden Recherche gesucht.
Schönes Wochenende
André
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Zeilen löschen, wenn Bedingung in Spalte erfüllt


Schritt-für-Schritt-Anleitung

Um in Excel Zeilen zu löschen, wenn eine bestimmte Bedingung in einer Spalte erfüllt ist, kannst Du den folgenden VBA-Code verwenden:

  1. Öffne den VBA-Editor: Drücke ALT + F11.
  2. Füge ein neues Modul hinzu:
    • Gehe zu Einfügen > Modul.
  3. Kopiere und füge den folgenden Code ein:
Sub löschen()
    Dim i
    For i = Cells(Rows.Count, 20).End(xlUp).Row To 1 Step -1
        On Error Resume Next
        If InStr(Cells(i, 20).Value, "umme") Then
            Rows(i).Delete
        End If
    Next
End Sub
  1. Schließe den VBA-Editor und gehe zurück zu Excel.
  2. Führe das Makro aus: Drücke ALT + F8, wähle löschen und klicke auf Ausführen.

Dieser Code löscht alle Zeilen, in denen in Spalte T (Spalte 20) der Teilstring "umme" vorkommt.


Häufige Fehler und Lösungen

  • Problem: Es passiert nichts beim Ausführen des Codes.

    • Lösung: Stelle sicher, dass Du den richtigen Spaltenindex verwendest und dass die Daten in Spalte T tatsächlich den Teilstring "umme" enthalten.
  • Problem: Der Code gibt eine Fehlermeldung aus.

    • Lösung: Überprüfe, ob der On Error Resume Next Befehl korrekt gesetzt ist, um Fehler zu ignorieren und weiterzumachen.
  • Problem: Du möchtest die Zeilen löschen, wenn eine Bedingung nicht erfüllt ist.

    • Lösung: Ändere die Bedingung im Code wie folgt:
If InStr(Cells(i, 20).Value, "umme") = 0 Then
    Rows(i).Delete
End If

Alternative Methoden

Du kannst auch ohne VBA Zeilen in Excel löschen, wenn eine Bedingung erfüllt ist, indem Du die Filterfunktion nutzt:

  1. Wähle die Datenreihe aus.
  2. Gehe zu Daten > Filter.
  3. Setze einen Textfilter auf enthält und gib "umme" ein.
  4. Markiere die gefilterten Zeilen und lösche sie.

Diese Methode ist besonders nützlich, wenn Du keine Makros verwenden möchtest.


Praktische Beispiele

Angenommen, Du hast eine Tabelle mit Namen in Spalte T und möchtest alle Namen, die "umme" enthalten, löschen. Mit dem oben genannten VBA-Code wird dies automatisiert erledigt. Wenn Du hingegen die Filtermethode verwendest, kannst Du schnell alle relevanten Zeilen finden und manuell löschen.


Tipps für Profis

  • Speichere Deine Arbeit regelmäßig, insbesondere, wenn Du mit VBA arbeitest, um Datenverlust zu vermeiden.
  • Nutze Kommentare im Code, um die Verständlichkeit zu erhöhen. Beispiel:
' Löscht alle Zeilen, in denen "umme" in Spalte T enthalten ist
  • Teste den Code in einer Kopie Deiner Datei, um sicherzustellen, dass alles korrekt funktioniert, bevor Du ihn auf die Originaldatei anwendest.

FAQ: Häufige Fragen

1. Wie kann ich mehrere Bedingungen prüfen?
Du kannst zusätzliche Bedingungen im Code hinzufügen, indem Du weitere If-Anweisungen einfügst oder die And/Or-Operatoren verwendest.

2. Funktioniert dieser Code in allen Excel-Versionen?
Ja, dieser VBA-Code sollte in den meisten modernen Excel-Versionen funktionieren, die VBA unterstützen.

3. Kann ich den Code anpassen, um eine andere Spalte zu verwenden?
Ja, ändere einfach die Zahl 20 im Code auf die entsprechende Spaltennummer, die Du verwenden möchtest.

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