Office: (Office 2019) VBA - Wert in einer Spalte finden und diese Zeile löschen

Helfe beim Thema VBA - Wert in einer Spalte finden und diese Zeile löschen in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Moin moin ihr Lieben, ich habe nun schon im Netz nach einer Lösung gesucht, aber nichts passendes oder funktionstüchtiges gefunden. Ich habe eine... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von GiTo79, 10. Dezember 2025 um 18:06 Uhr.

  1. GiTo79 Erfahrener User

    VBA - Wert in einer Spalte finden und diese Zeile löschen


    Moin moin ihr Lieben,

    ich habe nun schon im Netz nach einer Lösung gesucht, aber nichts passendes oder funktionstüchtiges gefunden.

    Ich habe eine Tabelle mit Spalten A - G. Nun soll Excel in der Spalte A nach einem bestimmten Wert (zB: 100501240) suchen und wenn er diesen Wert gefunden hat, dann soll er den Inhalt in der gefunden Zeile von Spalte A - D löschen. Musterhaft würde sein, wenn die Werte in einer Hilfstabelle sein wurden, da es sich hier bei der Suche um mindestens 15 Positionen handelt. Und im Anschluss das Makro auf Tabellenblatt1, Tabelleblatt2 und Tabellenblatt3 angewant werden soll.

    Habe den Entwurf als Bild mal angehängt. Das Feld "Daten löschen" bezieht sich dabei nicht auf die obige Frage, sondern löscht den gesamten Inhalt der Zellen A-D.

    Vielleicht hat ja einer eine Idee oder einen einfachen Code für mich.

    Vielen Dank schon einmal
     
    Zuletzt bearbeitet: 10. Dezember 2025 um 18:15 Uhr
  2. Klaus-Dieter Erfahrener User
    Hallo,

    warum ein Bild? Es ist immer schön, wenn man ein Makro testen kann. Dabei hilft eine Datei. Mehrere Tabellenblätter für gleichartige Daten sind auch nicht so das Optimale.
     
  3. GiTo79 Erfahrener User
    Lieber Klaus-Dieter. Vielen Dank schon einmal. Habe das Bild nur als Anschauung angegeben. Nach dem Makro der Umsetzung suche ich, wie ich es umsetzen könnte. Die Datei als ExcelTabelle kann ich leider nicht anhängen, da hier die Daten von der Arbeit enthalten sind und nicht unbedingt veröffentlicht werden müssen.
     
  4. Klaus-Dieter Erfahrener User

    VBA - Wert in einer Spalte finden und diese Zeile löschen

    Hallo,

    um ein Makro zu schreiben, muss man schon alle relevanten Zellbezüge kennen. Das ist bei dem Bild nur bedingt möglich. Wo sollen die zu suchenden Werte stehen?
     
  5. GiTo79 Erfahrener User
    Da komme ich zu meinem Eingangspost. In der Spalte A habe ich eine bestimmte Zahl. Taucht diese Zahl auf, so sollen die Spalten A - D in der Zeile gelöscht werden. Es sind insgesamt 6 Tabellenbätter, wo dieser Wert dann immer einmal auftaucht. Was ich oben mit Hilstabelle meinte, ist das es ca 15 bis 20 Zahlen sind, nachdem er suchen soll.

    vorher habe ich mir jeder Blatt geöffnet, habe die Zellen markiert und gelöscht. Da ich die Daten immer wieder neu einspiele ist mir das manuelle zu umständlich und hatte deshalb nach einem Makro gesucht.
     
  6. OilMax Erfahrener User
    Hallo,

    Mehrere Fragen:
    1. ist die Tabelle ein Listobjekt (formatierte Tabelle) oder nicht. Das verrät dieses Bild nicht.
    2. Soll nur gelöscht werden oder die gelöschten Zeilen in die von dir genannte Hilfstabelle unten angefügt werden.
    3. Welche Office-/Excelversion nutzt du.
    4. Lade eine Beispieldatei, mit deiner Fragestellung gerecht werdende mit brauchbaren Datensätzen anonymisiert hoch.

    Dann wirst du auch passende Hilfe bekommen.

    Gruß Uwe
     
  7. Klaus-Dieter Erfahrener User
    Hallo,
    mit einem Makro kann man in einer Datei auch einiges zerschießen, wenn es nicht genau an die Gegebenheiten angepasst ist. So eine Angabe: "Was ich oben mit Hilstabelle meinte, ist das es ca 15 bis 20 Zahlen sind, nachdem er suchen soll." recht nicht aus, um irgend etwas zu programmieren. Du kannst deine Datei so weit anonymisieren, dass du keine sensiblen Daten preis gibst. Insofern bin ich auch ganz bei Uwe. Also ein bisschen Butter bei die Fische, sonst können wir dir nicht helfen.
     
  8. GiTo79 Erfahrener User

    VBA - Wert in einer Spalte finden und diese Zeile löschen

    So habe dann mal die Daten und alten Macros, welche sich nicht auf die Anfrage von mir beziehen gelöscht und als Anschauung eine Tabelle eingefügt. Ich entschuldige schon einmal vorab mein Unwissen an Neuling, aber vielleicht hilft es so weiter. Nutze hier die Office Version 2021.
    Danke Euch trotzdem. :-)
     
  9. OilMax Erfahrener User
    Hallo,

    das wäre dann so:
    Code:
    Sub TrefferEntfernen()
        Dim i&, j&, wks As Worksheet, z As Range, arrZ(), arr(): arr = Tabelle1.UsedRange
        For i = 2 To UBound(arr)
            For Each wks In ThisWorkbook.Sheets
                If InStr(1, wks.Name, "einheit", vbTextCompare) > 0 Then
                    With wks.ListObjects(1).DataBodyRange
                        For j = .Rows.Count To 1 Step -1
                            If arr(i, 1) = .Cells(j, 1) Then .Rows(j).Delete
                        Next j
                    End With
                End If
            Next
        Next i
    End Sub
    Beachte: Diese Prozedur löscht dann ohne Rückfrage die betreffenden Zeilen im jeweiligen Listobjekt in allen Tabellenblättern, welche im Namen (Tab Name) "Einheit" enthalten.

    Gruß Uwe
     
    1 Person gefällt das.
  10. OilMax Erfahrener User
    Die Deklarationen, enhalten noch 2 nicht benötige. Also diese Zeile so:
    Code:
    Dim i&, j&, wks As Worksheet, arr(): arr = Tabelle1.UsedRange
    Gruß Uwe
     
    1 Person gefällt das.
  11. Klaus-Dieter Erfahrener User
    Hallo,

    mit diesem Makro würde es in deiner Beispieldatei funktionieren. Allerdings fehlt da noch eine Fehlerbehandlung, für den Fall, dass nichts gefunden wird. Da die Daten auf mehrere Blätter verteilt sind, ist das Makro aufwändiger als es sein müsste (könnte).

    Code:
    Option Explicit
    
    Sub loeschen()
        Dim lngZeile As Long
        Dim lngBlatt As Long
        Dim lngAnz As Long
        Dim varDatArr As Variant
        Dim varRow As Variant
        varDatArr = Array(Tabelle6, Tabelle7)
        For lngAnz = LBound(varDatArr) To UBound(varDatArr)
            For lngZeile = 2 To Tabelle1.Range("A1").End(xlDown).Row
                varRow = Application.Match(Tabelle1.Cells(lngZeile, 1).Value, varDatArr(lngAnz).Columns(1), 0)
                varDatArr(lngAnz).Range(varDatArr(lngAnz).Cells(varRow, 1), varDatArr(lngAnz).Cells(varRow, 4)).ClearContents
            Next lngZeile
        Next lngAnz
    End Sub
     
    1 Person gefällt das.
  12. GiTo79 Erfahrener User
    Ich werde es von Euch Beiden ausprobieren in Ruhe und schauen. Ich Danke Euch aber erst einmal und vorab für Eure Unterstützung. :-)
     
  13. Klaus-Dieter Erfahrener User

    VBA - Wert in einer Spalte finden und diese Zeile löschen

    Hallo,

    jetzt mit Fehlerbearbeitung:
    Code:
    Option Explicit
    
    Sub loeschen()
        Dim lngZeile As Long
        Dim lngBlatt As Long
        Dim lngAnz As Long
        Dim varDatArr As Variant
        Dim varRow As Variant
        varDatArr = Array(Tabelle6, Tabelle7)
        For lngAnz = LBound(varDatArr) To UBound(varDatArr)
            For lngZeile = 2 To Tabelle1.Range("A1").End(xlDown).Row
                varRow = Application.Match(Tabelle1.Cells(lngZeile, 1).Value, varDatArr(lngAnz).Columns(1), 0)
                If Not IsNumeric(varRow) Then
                    MsgBox "Keine Treffer"
                    Exit For
                End If
                varDatArr(lngAnz).Range(varDatArr(lngAnz).Cells(varRow, 1), varDatArr(lngAnz).Cells(varRow, 4)).ClearContents
            Next lngZeile
        Next lngAnz
    End Sub
    
     
    1 Person gefällt das.
  14. slowboarder Erfahrener User
    Hi
    vielleicht so, damit du nicht viel programmieren musst.

    1. erstelle die Hilfstabelle, liste dort die zu löschenden IDs in Spalte A
    2. ergänze alle Tabellen um eine weitere Spalte (H)mit dieser Formel:
    =Wenn(ZählenWenns(Hilfstabelle!A:A;A2);1;"")

    Als Code reicht dann
    With Sheets("Tabellenblatt1")
    if Worksheetfunction.Sum(.Columns(8)) > 0 Then Intersect(.Range("A:D", .Columns(8).SpecialCells(xlcelltypeformulas, 1).EntireRow).ClearContents
    End With


    das für alle drei Tabellenblätter wiederholen oder in einer Schleife ausführen.
    die Markierung der Zeilen, die gelöscht werden sollen übernimmt die Formel, in dem sie eine 1 reinschreibt.
    das Makro prüft dann, ob in dieser Spalte irgendwo eine 1 steht.
    dann selektiert es diese Zeilen, bildet die Schnittmenge mit der Spalte A:D und leert den Inhalt.

    Gruß Daniel
     
Thema:

VBA - Wert in einer Spalte finden und diese Zeile löschen

Die Seite wird geladen...
  1. VBA - Wert in einer Spalte finden und diese Zeile löschen - Similar Threads - VBA Wert Spalte

  2. Excel VBA - Code Hilfe (Spalten, Werte kopieren etc.)

    in Microsoft Excel Hilfe
    Excel VBA - Code Hilfe (Spalten, Werte kopieren etc.): Hallo, ich benötige Hilfe für ein Problem, welches ich leider selbst schwerlich als Anfänger nicht lösen kann: Ich möchte von dem Tabellenblatt "Tabelle1" aus den Zellen B8:B14, K8:K14, B18:B25,...
  3. Werte der letzten Zelle einer Spalte in mehreren Tabellenblättern ermitteln

    in Microsoft Excel Hilfe
    Werte der letzten Zelle einer Spalte in mehreren Tabellenblättern ermitteln: Hallihalllo, Ich sitze gerade an meine Bachelorarbeit und muss mittels VBA ein Auswertungsprogramm für erhobene Daten erarbeiten. Ich suche schon ewig im Internet nach dem passenden Code und...
  4. Mit VBA erst Wert in Spalte suchen, dann Spalte in dieser Zeile suchen

    in Microsoft Excel Hilfe
    Mit VBA erst Wert in Spalte suchen, dann Spalte in dieser Zeile suchen: Hallo Zusammen, bisher habe ich immer, wenn zwei Suchkriterien vorlagen, eine Kombination von Index/Vergleich genutzt. Damit komme ich bei meinem aktuellen Problem leider nicht weiter. Es...
  5. Werte einer Spalte in Bezug zu einer anderen Spalte anordnen (VBA)

    in Microsoft Excel Hilfe
    Werte einer Spalte in Bezug zu einer anderen Spalte anordnen (VBA): Hallo zusammen, ich möchte die Werte in zwei Spalten nach Gleichheit sortiert auflisten, komme aber nach langer suche im Internet nicht zu einer optimalen Lösung. Dazu habe ich eine...
  6. VBA - Zwei Spalten Vergleichen, Bestimmter Wert - Bestimmte Ausgabe

    in Microsoft Excel Hilfe
    VBA - Zwei Spalten Vergleichen, Bestimmter Wert - Bestimmte Ausgabe: Guten Tag Zusammen Ich bin leider im Thema VBA sehr unerfahren und kriege folgende Hürde nicht gelöst. Ich habe zwei Excel Dateien: Export.xlsx und Darstellung.xlsm In der Datei Export habe ich...
  7. Zeilen und Spalten mit VBA ausblenden wenn Wert 0 in bestimmten Zellen

    in Microsoft Excel Hilfe
    Zeilen und Spalten mit VBA ausblenden wenn Wert 0 in bestimmten Zellen: Hallo Excel Kolleginnen und Kollegen, ich habe mehrere Excel-Tabellen mit gleichem Layout aber nicht immer die gleichen Spalten und Zeilen befüllt, möchte nun mit VBA und Makro mir die Zeilen...
  8. VBA - Spalte nach Wert durchsuchen und in andere kopieren

    in Microsoft Excel Hilfe
    VBA - Spalte nach Wert durchsuchen und in andere kopieren: Hallo Leute, ich habe nur ein kleines kurzes Problem, was man sicher schnell lösen kann. Ich habe in Spalte S in einigen Zellen den Wert "O ST" stehen und möchte jetzt eine Funktion, die die...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden