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

Forumthread: Zeilen löschen wenn Zelle bestimmten Wert hat

Zeilen löschen wenn Zelle bestimmten Wert hat
07.02.2006 14:55:31
petra
Hallo,
ich bin auf der suche nach einem Makro der folgendes ausführt.
ich habe eine liste mit Daten, die in Spalte E Werte von 1 bis 2 absteigend sortiert sind.
jetzt möchte ich gerne, dass per Makro die Spalten B bis E gelöscht werden wenn in E eine 2 steht.
geht das?
lg
petra
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Zeilen löschen wenn Zelle bestimmten Wert hat
07.02.2006 15:51:10
et999
Hi,
ich habe Dich so verstanden, dass, wenn irgendwo in Spalte E eine 2 steht, die Spalten B bis E gelöscht werden. Das müsste so klappen:


Sub Löschen()
Dim L As Long
For L = 1 To Range("E65536").End(xlUp).Row
   If Cells(L, 5).Value = 2 Then
   Range("B1:E1").EntireColumn.Delete
   Exit Sub
   End If
Next
End Sub


Gruß
Uwe
(:o)
Anzeige
AW: Zeilen löschen wenn Zelle bestimmten Wert hat
07.02.2006 16:09:47
petra
hallo uwe,
hab mich schlecht ausgedrückt. ich möchte natürlich nicht die ganzen spalten b bis e löschen, sondern lediglich die zeilen, die den wert 2 in der jeweiligen Spalte E hat.
sorry für die unklare beschreibung.
lg
petra
AW: Zeilen löschen wenn Zelle bestimmten Wert hat
07.02.2006 16:17:08
et999
Hi Petra,
hatte mich auch schon gewundert.
Mit dieser kleinen Änderung am Makro wird jetzt, wenn in E ein 2 steht diese Zeile komplett gelöscht. Oder sollen nur die Zellen in B,C,D,E gelöscht werden und die anderen beleiben? Sag bescheid, das krieg' ich dann auch noch hin.


Sub Löschen()
Dim L As Long
For L = 1 To Range("E65536").End(xlUp).Row
   If Cells(L, 5).Value = 2 Then
   Cells(L, 5).EntireRow.Delete
   Exit Sub
   End If
Next
End Sub


Gruß
Uwe
(:o)
Anzeige
AW: Zeilen löschen wenn Zelle bestimmten Wert hat
07.02.2006 16:41:25
petra
hi uwe,
ja, eigentlich sollen nur die Zellen in B,C,D und E gelöscht werden.
wäre klasse, wenn du das noch integrieren könntest.
tausend dank
lg
petra
AW: Zeilen löschen wenn Zelle bestimmten Wert hat
07.02.2006 18:20:22
et999
Hi Petra,
mit dem folgenden Makro werden nur die vier Zellen gelöscht und die restlichen darunter nach oben verschoben. Pass auf dass Dir das nichts durcheinanderbringt. Wenn Du nur den Inhalt der vier Zellen gelöscht haben willst, entferne das Hochkomma vor der sechsten Zeile und lösch die fünfte komplett.


Sub Löschen()
Dim L As Long
For L = 1 To Range("E65536").End(xlUp).Row
   If Cells(L, 5).Value = 2 Then
  Range(Cells(L, 2), Cells(L, 5)).Delete shift:=xlUp
  'Range(Cells(L, 2), Cells(L, 5)).Clear
   Exit Sub
   End If
Next
End Sub


Gruß
Uwe
(:o)
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zeilen in Excel löschen, wenn eine Zelle einen bestimmten Wert hat


Schritt-für-Schritt-Anleitung

Um Zeilen in Excel zu löschen, wenn eine Zelle einen bestimmten Wert hat, kannst du das folgende VBA-Makro verwenden. In unserem Beispiel werden alle Zeilen gelöscht, in denen in Spalte E der Wert 2 steht, und die Zellen in den Spalten B bis E werden gelöscht.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Klicke auf Einfügen und wähle Modul.
  3. Füge den folgenden Code in das Modul ein:
Sub Löschen()
    Dim L As Long
    For L = 1 To Range("E65536").End(xlUp).Row
        If Cells(L, 5).Value = 2 Then
            Range(Cells(L, 2), Cells(L, 5)).Delete shift:=xlUp
        End If
    Next
End Sub
  1. Schließe den VBA-Editor und gehe zurück zu Excel.
  2. Drücke ALT + F8, wähle das Makro Löschen aus und klicke auf Ausführen.

Jetzt werden alle Zellen in den Spalten B bis E gelöscht, wenn in der entsprechenden Zeile in Spalte E der Wert 2 steht.


Häufige Fehler und Lösungen

  • Fehler: Das Makro löscht die falschen Zeilen.

    • Lösung: Stelle sicher, dass die richtige Spalte (hier Spalte E) und der richtige Wert (hier 2) angegeben sind.
  • Fehler: Nichts passiert, wenn das Makro ausgeführt wird.

    • Lösung: Überprüfe, ob die Spalte E tatsächlich den Wert 2 enthält und dass das Makro im richtigen Arbeitsblatt ausgeführt wird.

Alternative Methoden

  1. Filter-Methode:

    • Wähle die gesamte Tabelle aus.
    • Gehe zu Daten > Filter.
    • Setze einen Filter auf Spalte E, um nur die Zeilen mit dem Wert 2 anzuzeigen.
    • Markiere die gefilterten Zeilen, klicke mit der rechten Maustaste und wähle Zeilen löschen.
  2. Bedingte Formatierung:

    • Nutze die bedingte Formatierung, um die Zellen hervorzuheben, die gelöscht werden sollen, und lösche sie manuell.

Praktische Beispiele

  • Beispiel 1: Wenn du alle Zeilen löschen möchtest, die einen bestimmten Text in einer Zelle enthalten, kannst du die Bedingung im VBA-Code anpassen:
If Cells(L, 5).Value = "DeinText" Then
  • Beispiel 2: Um alle Zeilen mit einem bestimmten Wert in einer anderen Spalte zu löschen, ändere einfach die Spaltennummer:
If Cells(L, 3).Value = 2 Then

Tipps für Profis

  • Backup erstellen: Mach immer eine Sicherungskopie deiner Daten, bevor du ein Makro ausführst, das Daten löscht.
  • Debugging: Verwende Debug.Print, um den Wert von Zellen während der Schleife zu überprüfen, falls du Probleme mit dem Makro hast.
  • Makros optimieren: Wenn du mit großen Datensätzen arbeitest, kann es sinnvoll sein, die Bildschirmaktualisierung auszuschalten, um die Ausführungsgeschwindigkeit zu erhöhen:
Application.ScreenUpdating = False
' Dein Code hier
Application.ScreenUpdating = True

FAQ: Häufige Fragen

1. Wie kann ich das Makro anpassen, um nur bestimmte Spalten zu löschen? Du kannst die Range-Anweisung im VBA-Code ändern, um nur die gewünschten Spalten zu löschen.

2. Was passiert mit den Zellen, die gelöscht werden? Die Zellen werden aus der Tabelle entfernt, und die darunterliegenden Zellen werden nach oben verschoben, um die Lücken zu schließen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige