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

Forumthread: Zeile löschen wenn bestimmter Wert in Spalte

Zeile löschen wenn bestimmter Wert in Spalte
24.04.2019 13:11:48
Simon
Hallo,
für euch hier wahrscheinlich ein Leichtes....
Ich habe eine Tabelle, bestehend aus 5 Spalten und 20 Zeilen.
Wenn nun in der 4. Spalte ein Wert "A" oder "B" in einer Zelle vorkommt, so soll die entsprechend zugehörige Zeile komplett gelöscht werden.
Kleine Herausforderung dabei: Die 1. Spalte enthält Positionsnummern von 1 - 20. Diese sollen natürlich erhalten bleiben. Also wenn z. B. wegen o. g. Sache die Zeile 7 gelöscht wird, so sollen die dahinter liegenden Zeilen (abgesehen von der 1. Spalte wegen der Positionsnummern) eine Ebene höher springen.
Ich hoffe, es ist verständlich!?
Excel-Version 2016.
Vielen Dank im Voraus, Simon.
Anzeige

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeile löschen wenn bestimmter Wert in Spalte
24.04.2019 13:55:35
UweD
Hallo
so?
Option Explicit

Sub Zeile20()
    Dim i As Integer, SP As Integer, M As Integer
    
    SP = 1 'Spalte A 
    M = 20
    
    'Nummerierung per Formel 
    Cells(1, 1).Resize(M, 1).FormulaR1C1 = "=row()"
        
    For i = M To 1 Step -1 'Rückwärts 
        Select Case Cells(i, SP).Offset(0, 3)
            Case "A", "B"
                'Zeile löschen 
                Rows(i).Delete xlUp
            Case Else
                'Nichts 
        End Select
    Next
    
    'Nummerierung: Formel in Wert 
    With Cells(1, 1).Resize(M, 1)
        .Value = .Value
    End With

End Sub

LG UweD
Anzeige
AW: Zeile löschen wenn bestimmter Wert in Spalte
24.04.2019 17:35:21
Simon
Hallo.
Erstmal danke. Ich habe von VBA fast keine Ahnung. Den Code habe ich nun unter dem VBAProject, Tabelle 1 eingefügt. Es passiert aber nichts. Muss der Code noch irgendwie "aktiviert" werden?
AW: Zeile löschen wenn bestimmter Wert in Spalte
24.04.2019 17:40:06
UweD
Hi
Er sollte in ein normales Modul.
Lege dir einen Button ab und weise dann das Makro zu.
LG UweD
Anzeige
AW: Zeile löschen wenn bestimmter Wert in Spalte
24.04.2019 18:48:45
Günther
Moin,
es geht auch recht gut mit "ohne VBA" ... ;-)
* Daten in Power Query importieren
* 1. Spalte löschen
* 4. Spalte entsprechend filtern
* Neue Spalte mit 1-basiertem Index erstellen
* Diese Spalte an den Anfang verschieben und bei Bedarf umbenennen
Gruß
Günther
Anzeige
AW: Zeile löschen wenn bestimmter Wert in Spalte
24.04.2019 20:23:10
Simon
Auf dem PC ist zum einen eine Installation von Power Query nicht möglich, zum anderen kenne ich mich damit rein gar nicht aus.....
AW: Zeile löschen wenn bestimmter Wert in Spalte
24.04.2019 20:30:29
Günther
Im Club "Excel-User mit Scheuklappen" bist du gewiss herzlich willkommen !
Natürlich lässt es sich nicht installieren, denn in 2016 ist es bereits integriert.
Und in der heutigen Zeit, wo es im Netz alles zum Nulltarif gibt ist es natürlich überflüssig, sich selber neues Wissen anzueignen. Das strengt ja auch an ...
Mit traurigem Kopfschütteln
Günther
Anzeige
AW: Zeile löschen wenn bestimmter Wert in Spalte
25.04.2019 18:36:50
Simon
Na das nenne ich mal eine freundliche Antwort...
Zum einen bin ich ein ziemlicher Laie - weswegen ich überhaupt dieses Forum aufsuche. Zum anderen habe ich sehr wohl versucht mich zu informieren, bin aber recht schnell an der Stelle angekommen, dass man das Add-In angeblich installieren muss. Woher soll ich denn wissen, dass dies Info falsch ist und Excel 2016 es bereits enthält?
Na ja, dann schimpf ich mich eben "Excel-User mit Scheuklappen".
Anzeige
Code läuft bei mir-ansonsten siehe Günther-owT
24.04.2019 20:36:48
robert
AW: Zeile löschen wenn bestimmter Wert in Spalte
24.04.2019 20:21:45
Simon
Hab ich gemacht. Nun sagt er mir bei Betätigung des Buttons: Fehler beim Kompilieren. Innerhalb einer Prozedur ungültig.
AW: Zeile löschen wenn bestimmter Wert in Spalte
25.04.2019 08:51:36
UweD
Dann lad mal eine Musterdatei hoch.
Anzeige
AW: Zeile löschen wenn bestimmter Wert in Spalte
25.04.2019 17:22:54
Hajo_Zi
lasse den Fragesteller entscheiden ob offen.
Es ist heute nicht mehr üblich eine Rückmeldung zu geben und so ist der Beitrag über 6 Tage offen.

AW: Zeile löschen wenn bestimmter Wert in Spalte
25.04.2019 19:05:40
Simon
Entschuldige bitte die Verspätung. Vermutlich hab ich beim Button schon was falsch gemacht!?
https://www.herber.de/bbs/user/129396.xlsm
Anzeige
AW: Zeile löschen wenn bestimmter Wert in Spalte
26.04.2019 08:43:16
UweD
Hallo
- Du hast eine Sub in eine Sub eingeschlossen..
- Ausserdem ist es jetzt eine andere Spalte
- Die Formel hab ich auch noch angepasst =WENN(B1&lt&gt"";ZEILE();"")
so muss es sein.
Microsoft Excel Objekt Tabelle1
Option Explicit 
Private Sub CommandButton1_Click() 
    Dim i As Integer, SP As Integer, M As Integer 
     
    SP = 1 'Spalte A 
    M = 20 
     
    'Nummerierung per Formel 
    Cells(1, 1).Resize(M, 1).FormulaR1C1 = "=IF(RC[1]<>"""",ROW(),"""")" 
         
    For i = M To 1 Step -1 'Rückwärts 
        Select Case Cells(i, SP).Offset(0, 4) 
            Case "a", "b" 
                'Zeile löschen 
                Rows(i).Delete xlUp 
            Case Else 
                'Nichts 
        End Select 
    Next 
     
    'Nummerierung: Formel in Wert 
    With Cells(1, 1).Resize(M, 1) 
        .Value = .Value 
    End With 
 
 
End Sub 

LG UweD
Anzeige
AW: Zeile löschen wenn bestimmter Wert in Spalte
26.04.2019 09:45:48
Simon
Funktioniert jetzt.
Super - vielen lieben Dank!!!
Prima! Danke für die Rückmeldung. owT
26.04.2019 10:28:48
UweD
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zeilen Löschen in Excel: So Geht's


Schritt-für-Schritt-Anleitung

Um Zeilen in Excel zu löschen, wenn ein bestimmter Wert in einer Spalte vorhanden ist, kannst du die folgende VBA-Methode verwenden. Diese Anleitung basiert auf Excel 2016.

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf VBAProject (DeineDatei.xlsx) > Einfügen > Modul.

  3. Füge den Code ein: Kopiere den folgenden Code in das Modul:

    Option Explicit
    
    Sub ZeilenLoeschen()
       Dim i As Integer, SP As Integer, M As Integer
    
       SP = 4 'Spalte D (4. Spalte)
       M = Cells(Rows.Count, SP).End(xlUp).Row ' Letzte Zeile in Spalte D
    
       For i = M To 1 Step -1 ' Rückwärts durch die Zeilen gehen
           If Cells(i, SP).Value = "A" Or Cells(i, SP).Value = "B" Then
               Rows(i).Delete xlUp ' Zeile löschen
           End If
       Next i
    End Sub
  4. Makro ausführen: Schließe den VBA-Editor und gehe zurück zu Excel. Drücke ALT + F8, wähle ZeilenLoeschen und klicke auf Ausführen.

  5. Überprüfe die Ergebnisse: Die Zeilen mit den Werten "A" und "B" in der 4. Spalte sollten nun gelöscht sein.


Häufige Fehler und Lösungen

  • Fehler beim Kompilieren: Überprüfe, ob der Code korrekt in ein normales Modul eingefügt wurde und nicht in ein Arbeitsblatt-Modul.

  • Makro wird nicht ausgeführt: Stelle sicher, dass die Makros in Excel aktiviert sind. Gehe zu Datei > Optionen > Trust Center > Einstellungen für das Trust Center > Makroeinstellungen und aktiviere die Option für alle Makros.


Alternative Methoden

Wenn du die Verwendung von VBA vermeiden möchtest, kannst du auch Power Query verwenden, um Zeilen zu löschen:

  1. Daten in Power Query importieren: Wähle die Daten aus und gehe zu Daten > Aus Tabelle/Bereich.

  2. Filter anwenden: Klicke auf die Dropdown-Liste der 4. Spalte und filtere nach "A" oder "B".

  3. Entfernen der gefilterten Zeilen: Klicke mit der rechten Maustaste auf die gefilterten Zeilen und wähle Zeilen löschen.

  4. Daten laden: Klicke auf Schließen & Laden, um die bereinigten Daten zurück in Excel zu übertragen.


Praktische Beispiele

  • Beispiel 1: Du hast eine Excel-Tabelle mit Verkaufsdaten. Wenn du alle Zeilen mit dem Status "storniert" in der 4. Spalte löschen möchtest, kannst du die oben genannten Schritte verwenden.

  • Beispiel 2: Wenn du nur die leeren Zeilen in einer Tabelle entfernen möchtest, kannst du Power Query verwenden, um diese zu filtern und zu löschen.


Tipps für Profis

  • Verwende Power Query: Wenn du oft mit großen Datenmengen arbeitest, ist Power Query eine leistungsstarke Option, um gefilterte Zeilen zu löschen und die Daten zu transformieren.

  • Automatisiere mit Makros: Wenn du regelmäßig die gleichen Daten bereinigst, erstelle ein Makro, das die Schritte automatisiert, um Zeit zu sparen.


FAQ: Häufige Fragen

1. Wie kann ich in Power Query gefilterte Zeilen löschen?
Nutze die Filterfunktion, um die gewünschten Zeilen auszuwählen, und klicke dann auf Zeilen entfernen.

2. Kann ich auch leere Zeilen in Power Query entfernen?
Ja, wähle die Spalte, filtere die leeren Werte und lösche diese Zeilen.

3. Wie lösche ich Zeilen in Power BI?
In Power BI kannst du ähnliche Schritte wie in Power Query ausführen, um leere oder unerwünschte Zeilen zu entfernen.

4. Welche Excel-Version wird empfohlen für Power Query?
Power Query ist in Excel 2016 und späteren Versionen integriert, was es einfach macht, ohne zusätzliche Installationen zu arbeiten.

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