Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

ganze Zeile löschen

Forumthread: ganze Zeile löschen

ganze Zeile löschen
21.11.2002 17:36:55
Michael
Guten Abend,

ich such über eine ForEach- Schleife einen Begriff. wenn der gefunden wurd, möchte ich die gesamte Zeile löschen und zwar so wie mit dem Excel- Befehl: Bearbeiten- Zellen Löschen.

kann mir jemand sagen wie hier der Code lautet?

Hier mein Code, der nicht funktioniert:

Dim such As String

such = txtArt.Value

For Each c In Sheets("Testliste").Range("C21:C1000")
If c.Value = such Then
Rows(c).Delete
Exit For
End If
Next c


Vielen Dank im voraus

Michael

Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: ganze Zeile löschen
21.11.2002 17:40:11
PeterW
Hallo Michael,

mit c.Row sprichst Du die Zeile an, also:

Rows(c.Row).Delete

Gruß
Peter

Re: ganze Zeile löschen
21.11.2002 20:59:42
Michael
Hallo Peter,

vielen Dank für Deine Antwort.

Klappt hervorragend. Jetzt kann ich weitermachen.


Gruß

Michael

Re: ganze Zeile löschen
21.11.2002 21:09:48
Michael
Hallo Peter,

jetzt habe ich ein neues Problem:

wenn ich mehrere Zeilen löschen will, die unter dem Suchbegriff stehen:

Dim such As String
Dim anf As Range
Dim fert As Range

such = comboProd.Value

For Each c In Sheets("Testliste").Range("D21:D1000")
If c.Value = such Then
Set anf = c
Set fert = c.End(xlDown).Offset(0, 1)

Rows(anf, fert).Delete
Exit For
End If
Next c


Das mit dem Rows(anf, fert) klappt nicht. Kannst Du mir nochmals weiterhelfen?


Ich bedankemich nochmals im voraus

Michael

Anzeige
Re: ganze Zeile löschen
22.11.2002 06:46:56
PeterW
Hallo Michael,

so wie ich Deinen Code verstehe willst Du alle Zeilen ab dem gefundenen Begriff löschen.

Gruß
Peter

Re: ganze Zeile löschen
22.11.2002 07:02:19
Michael
Hallo Peter,

ja genau so wollte ich es. Vielen Dank nochmals,


Michael

Re: ganze Zeile löschen
22.11.2002 07:50:11
Michael
Hallo Peter,

nochmals ich. Leider funktioniert es doch nicht.

Bei der Zeile anf = c.Row bekomme ich die Fehlermeldung:

Objektvariable oder With-Blockvariable nicht festgelegt.


Ich habe auch schon versucht die Variablen mit Set anf...
einzubauen, auch das geht nicht.


Hast Du vielleicht noch eine Idee?


Gruß

Michael

Anzeige
Re: ganze Zeile löschen
22.11.2002 08:30:12
Michael (die letzte)
Hallo Peter,

ich Idiot habe übersehen, dass die Variablen anders deklariert sind.
Jetzt geht Dein Beispiel hervorragend.

Gruß

Michael

Re: ganze Zeile löschen
22.11.2002 08:30:30
PeterW
Hallo Michael,

habe den Code hier getestet. Hast Du ihn in ein Modul geschrieben oder direkt aus dem Forum kopiert? Zweiteres ist der sichere Weg. Hast Du vielleicht sonstige Änderungen vorgenommen?

Gruß
Peter

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Ganze Zeile in Excel löschen mit VBA


Schritt-für-Schritt-Anleitung

Um eine ganze Zeile in Excel mit VBA zu löschen, kannst Du eine For Each-Schleife verwenden, um nach einem bestimmten Begriff zu suchen. Hier ist ein einfaches Beispiel:

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

  2. Füge ein neues Modul hinzu, indem Du mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)" klickst und "Einfügen" > "Modul" wählst.

  3. Kopiere und füge den folgenden Code ein:

    Sub ZeileLoeschen()
       Dim such As String
       such = InputBox("Gib den Suchbegriff ein:")
       Dim c As Range
    
       For Each c In Sheets("Testliste").Range("C21:C1000")
           If c.Value = such Then
               Rows(c.Row).Delete
               Exit For
           End If
       Next c
    End Sub
  4. Schließe den VBA-Editor und führe das Makro aus, um die gesamte Zeile zu löschen, wenn der Suchbegriff gefunden wird.


Häufige Fehler und Lösungen

  • Fehler: "Objektvariable oder With-Blockvariable nicht festgelegt."
    Dieser Fehler tritt auf, wenn Du versuchst, auf eine nicht deklarierte Variable zuzugreifen. Stelle sicher, dass alle Variablen korrekt deklariert sind, wie im Beispiel oben.

  • Lösung: Verwende c.Row anstelle von c.
    Wenn Du die Zeile löschen möchtest, musst Du Rows(c.Row).Delete verwenden, um die richtige Zeile anzusprechen.


Alternative Methoden

Eine alternative Methode zum Löschen von Zeilen in Excel ist die Verwendung des AutoFilter-Features. Damit kannst Du die Zeilen nach bestimmten Kriterien filtern und dann löschen:

  1. Wähle die Daten aus, die Du filtern möchtest.
  2. Gehe zu "Daten" > "Filtern".
  3. Setze den Filter auf den Suchbegriff.
  4. Markiere die gefilterten Zeilen und lösche sie.

Diese Methode ist besonders nützlich, wenn Du mehrere Zeilen gleichzeitig löschen möchtest, ohne VBA zu verwenden.


Praktische Beispiele

Hier ist ein Beispiel, wie Du mehrere aufeinanderfolgende Zeilen löschen kannst:

Sub MehrereZeilenLoeschen()
    Dim such As String
    Dim anf As Range
    Dim fert As Range
    such = InputBox("Gib den Suchbegriff ein:")

    For Each c In Sheets("Testliste").Range("D21:D1000")
        If c.Value = such Then
            Set anf = c
            Set fert = c.End(xlDown).Offset(0, 0)
            Rows(anf.Row & ":" & fert.Row).Delete
            Exit For
        End If
    Next c
End Sub

Dieser Code sucht nach dem Suchbegriff und löscht alle Zeilen von der gefundenen Zeile bis zur letzten Zeile mit Werten.


Tipps für Profis

  • Verwende Application.ScreenUpdating = False:
    Um die Ausführungsgeschwindigkeit zu erhöhen, kannst Du die Bildschirmaktualisierung deaktivieren, während das Makro läuft. Setze dies am Anfang und aktiviere es am Ende des Makros wieder:

    Application.ScreenUpdating = False
    ' Dein Code hier
    Application.ScreenUpdating = True
  • Testen in einer Kopie:
    Teste alle VBA-Skripte zunächst in einer Kopie Deiner Excel-Datei, um unbeabsichtigte Datenverluste zu vermeiden.


FAQ: Häufige Fragen

1. Kann ich auch mehrere Begriffe gleichzeitig suchen?
Ja, Du kannst eine Liste von Suchbegriffen in ein Array speichern und die Schleife entsprechend anpassen.

2. Wie kann ich meinen Code schneller machen?
Vermeide das Löschen von Zeilen während der Iteration. Stattdessen kannst Du die zu löschenden Zeilen in einer Sammlung speichern und sie nach dem Durchlauf alle auf einmal löschen.

3. Funktioniert das auch in Excel Online?
Die Verwendung von VBA ist in Excel Online nicht möglich. Du musst die Desktop-Version von Excel verwenden, um VBA-Skripte auszuführen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige