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

Zeile löschen wenn in einer Zeile der Begriff....

Forumthread: Zeile löschen wenn in einer Zeile der Begriff....

Zeile löschen wenn in einer Zeile der Begriff....
23.06.2017 07:55:33
Andi
Guten Morgen auch wenn ihr gerne auf die Suche verweist ich habe verschiedene scripte ausprobiert keines führte zu meinem Ergebnis
Ich importiere eine csv das bekomme ich hin dann sind Daten im sheet und dort möchte ich die Zeilen entfernen die einen Eintrag in verschiedenen Zellen haben kann. Das Suchwort lautet DE-AT-CH. Diese benötige ich nicht daher wunsc6ich das sie gelöscht werden. Ich hatte es schon mit Filter etc probiert aber dann blieben Reste die mich bei meiner weiteren Verarbeitung stören. Vielen Dank im vorraus
Anzeige

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Autofilter
23.06.2017 08:00:23
Hajo_Zi
benutze Autofilter und kopiere den sichtbaren Bereich, ganz ohne VBA.

AW:... und Begriff in verschied. Spalt. steht ...
23.06.2017 08:20:56
...
Hallo Andi,
... dann zunächst eine leere Zeile vor die erste einfügen dann in der zweiten Zeile der ersten leeren Spalte (mal angenommen Spalte H) folgende Hilfsspaltenformel:
=ANZAHL(INDEX(SUCHEN("DE-AT-CH";A2:G2);)) und Formel nach unten kopieren.
Autofilter auf Spalte H setzen und nach 1 filtern. Danach gefilterte Zeilen markieren und löschen und Filter wieder entfernen.
Steht der Begriff nur in einer Spalte dann bedarf es natürlich keiner Hilfsspaltenformel.
Gruß Werner
.. , - ...
Anzeige
Zeile löschen wenn in einer Zeile der Begriff....
23.06.2017 08:30:23
Nepumuk
Hallo Andi,
teste mal:
Option Explicit

Public Sub Loeschen()
    Dim objCell As Range
    Do
        Set objCell = Cells.Find(What:="DE-AT-CH", LookIn:=xlValues, _
            LookAt:=xlWhole, MatchCase:=True)
        If Not objCell Is Nothing Then
            Call objCell.EntireRow.Delete
        Else
            Exit Do
        End If
    Loop
End Sub

Gruß
Nepumuk
Anzeige
AW: Zeile löschen wenn in einer Zeile der Begriff....
23.06.2017 17:48:34
Andi
Vielen Dank erst einmal, aber ich beschrieb das ich nicht zwingend Filtern möchte denn das hatte ich ja geschrieben.
ich habe nochmal genauch geschaut ich möchte WENN in Spalte "V" "DE-AT-CH" steht. genau diese Zeile löschen lassen.
Spalte A bis U sind mit Daten gefüllt.
Der CSV Import vorab bringt diese Daten in die Tabelle und ab Zeile 4 befinden sich die Daten. Vorher sind eben Überschrift und sonstige Informationen übergeben worden.
Zu Nepumuk kann ich sagen das Fehler ausgeworfen werden.
Einmal bei Option Explizit und dann das "As"
DIM objCell As Range führt zu enem Fehler.
Und ja ich hate vorher angefragt wenn egal in welcher Zelle sich das zu suchende befindet ... kann ich nun aber genauer werden. In einer anderen Anfrage wandert aber dies zum Beispiel in Spalte "U"
Vielen Dank vorab
Anzeige
AW: Zeile löschen wenn in einer Zeile der Begriff....
23.06.2017 18:41:10
guenni
Du meintest
" ich möchte WENN in Spalte "V" "DE-AT-CH" steht. genau diese ZELLE löschen lassen"
nicht
" ich möchte WENN in Spalte "V" "DE-AT-CH" steht. genau diese Zeile löschen lassen"
hab ich recht?!
Gruß,
Günther
Zeile löschen wenn in einer Zeile der Begriff....
23.06.2017 18:50:47
Nepumuk
Hallo Andi,
kannst du mal eine Mustermappe hochladen in der das nicht funktioniert? Ich hab das natürlich getestet und es funktionierte einwandfrei. In der Mustermappe brauche ich nur die Spalte V alles andere kannst du löschen.
Gruß
Nepumuk
Anzeige
AW: Zeile löschen wenn in einer Zeile der Begriff....
23.06.2017 18:59:46
guenni

sub WegDamit()
Columns("V:V").Replace What:="DE-AT-CH", Replacement:="", LookAt:=xlWhole, _
SearchOrder:=xlByColumns, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
end sub

AW: Zeile löschen wenn in einer Zeile der Begriff....
24.06.2017 09:47:27
Andi
https://www.herber.de/bbs/user/114448.xlsm ist die Mappe ... ich denke so entsteht eine bessere Übersicht von dem was ich will... ich gebe zu Bedenken das beim Einlesen auch Spalte U statt V betroffen sein kann für das Auslosen der Löschung der betroffenen Zeile. Vielen Dank vorab
Anzeige
Zeile löschen wenn in einer Zeile der Begriff....
24.06.2017 10:39:28
Nepumuk
Hallo Andi,
vor den rot markierten Zeilen sind an Stelle von Leerzeichen (ASCII 32) unsichtbare Zeichen (ASCII 160) drin. Keine Ahnung wie die da rein kommen, denn wenn ich den Code aus meiner Antwort kopiere und einfüge ist alles ok. Da könnte an deinem Browser liegen oder einem Programm von dir welches das Clipboard überwacht.
Gruß
Nepumuk
Anzeige
AW: Zeile löschen wenn in einer Zeile der Begriff....
24.06.2017 14:12:03
Andi
Vielen Dank für den Hinweis ich habe den Rest vorher gelöscht und schon funktionierte es... ABER
ich kann beides nicht zusammen abwickeln lassen
Ich habe beide Dateien mal angehängt die zu importierende CSV und die Makro Excel Datei
Es funktioniert jetzt mit den beiden Button aber ich möchte es in einem abwickeln
Danke
https://www.herber.de/bbs/user/114455.zip
Ziel: Import - Löschen - Export in eine CSV mit eigenem Namen zum Abspeichern.
Anzeige
AW: Zeile löschen wenn in einer Zeile der Begriff....
25.06.2017 07:55:03
Andi
Vielen Dank es funktioniert... Super Vielen Dank... ich versuche die einzelnen Schritte auch zu verstehen da der Code ja doch anders aussieht als vorher.
einen schönen Sonntag
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Zeilen in Excel löschen, wenn bestimmte Begriffe vorhanden sind


Schritt-für-Schritt-Anleitung

Um Zeilen in Excel zu löschen, wenn der Begriff "DE-AT-CH" in einer bestimmten Spalte steht, kannst Du folgende Schritte befolgen. Diese Anleitung funktioniert in Excel 2016 und neueren Versionen:

  1. Hilfsspalte erstellen:

    • Füge eine leere Zeile über den Daten ein.
    • In der Zelle der zweiten Zeile der ersten leeren Spalte (z.B. Spalte H) verwendest Du die folgende Formel:
      =ANZAHL(INDEX(SUCHEN("DE-AT-CH";A2:G2);))
    • Kopiere die Formel nach unten, um die Anzahl der Vorkommen des Begriffs in den Zeilen zu ermitteln.
  2. Autofilter anwenden:

    • Wende den Autofilter auf die Hilfsspalte an und filtere nach dem Wert "1".
  3. Zeilen löschen:

    • Markiere die gefilterten Zeilen, recht-klicke und wähle "Zeilen löschen".
    • Entferne den Filter, um wieder alle Zeilen anzuzeigen.
  4. VBA-Makro verwenden (alternative Methode):

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
    • Füge folgenden Code in ein neues Modul ein:
      Sub Loeschen()
       Dim objCell As Range
       Do
           Set objCell = Cells.Find(What:="DE-AT-CH", LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=True)
           If Not objCell Is Nothing Then
               objCell.EntireRow.Delete
           Else
               Exit Do
           End If
       Loop
      End Sub
    • Führe das Makro aus, um alle Zeilen zu löschen, die den Begriff enthalten.

Häufige Fehler und Lösungen

  • Fehler bei der Formel: Wenn Du einen Fehler bei der Formel erhältst, überprüfe, ob die Zellen im richtigen Format sind und dass Du die Formel korrekt eingegeben hast.

  • VBA-Fehler: Wenn Du einen Fehler bezüglich Dim objCell As Range erhältst, stelle sicher, dass Du das Makro in einem neuen Modul und nicht in einem Arbeitsblattmodul eingefügt hast.

  • Unsichtbare Zeichen: Achte darauf, dass keine unsichtbaren Zeichen (ASCII 160) in Deinen Daten vorhanden sind. Diese können Probleme verursachen, wenn Du die Daten verarbeitest.


Alternative Methoden

  1. Ersetzen-Funktion: Nutze die Ersetzen-Funktion, um "DE-AT-CH" durch nichts zu ersetzen:

    Sub WegDamit()
       Columns("V:V").Replace What:="DE-AT-CH", Replacement:="", LookAt:=xlWhole
    End Sub
  2. Filter mit VBA: Du kannst auch den Autofilter in VBA verwenden, um die Zeilen zu filtern und anschließend zu löschen.


Praktische Beispiele

  • Beispiel 1: Angenommen, Du hast eine Liste mit verschiedenen Ländern in den Spalten A bis G und möchtest alle Zeilen löschen, die in Spalte V "DE-AT-CH" enthalten.
  • Beispiel 2: Wenn Du eine CSV-Datei importierst und die unerwünschten Zeilen gleich nach dem Import entfernen möchtest, kannst Du dies in einem Makro kombinieren.

Tipps für Profis

  • Makros automatisieren: Du kannst die Makros so anpassen, dass sie beim Öffnen der Datei automatisch ausgeführt werden, um den Prozess zu automatisieren.
  • Daten sichern: Erstelle immer eine Sicherungskopie Deiner Datei, bevor Du Massenänderungen vornimmst, insbesondere beim Löschen von Daten.

FAQ: Häufige Fragen

1. Kann ich auch mehrere Begriffe gleichzeitig suchen und löschen?
Ja, Du kannst die Formel oder das Makro anpassen, um mehrere Begriffe zu berücksichtigen. Bei der Formel kannst Du beispielsweise mehrere ODER-Bedingungen verwenden.

2. Was ist, wenn ich nur eine bestimmte Spalte durchsuchen möchte?
In diesem Fall kannst Du die Suchfunktion in der Formel oder im VBA-Code so anpassen, dass sie nur in der gewünschten Spalte arbeitet.

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