Office: Excel mit VBA ganze Zeile nach einem Wert in Zelle löschen

Helfe beim Thema Excel mit VBA ganze Zeile nach einem Wert in Zelle löschen in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen Mein Kopf ist kurz vorm Explodieren. Hoffe auf eure Hilfe: Ich versuche mit einem Makro anhand des Wertes der in Zelle G1 steht, alle... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von JueggeG, 11. Januar 2023.

  1. JueggeG
    JueggeG User

    Excel mit VBA ganze Zeile nach einem Wert in Zelle löschen


    Hallo zusammen
    Mein Kopf ist kurz vorm Explodieren. Hoffe auf eure Hilfe:
    Ich versuche mit einem Makro anhand des Wertes der in Zelle G1 steht, alle Zeilen mit diesem Wert in der Tabelle zu löschen.
    Zuerst habe ich es mit Filtern versucht:

    Sheets("Offene Zahlungen Arbeiten").Select
    ActiveSheet.ListObjects("Tabelle7").Range.AutoFilter Field:=1, Criteria1:=Range("G1").Value
    Range("A2:A5").SpecialCells(xlCellTypeVisible).EntireRow.Delete
    ActiveSheet.ListObjects("Tabelle7").Range.AutoFilter Field:=1


    Da war das Problem, dass sich die Tabelle laufend verändert durch Einträge und Löschungen. Also Range("A2:A5") stimmt dann nicht mehr und habe nichts im Netz gefunden als Lösung.

    Dann habe ich es mit diesem Code ohne Filtern versucht (Im Netz gefunden und kopiert):

    Sheets("Offene Zahlungen Arbeiten").Select
    lz = Cells(Rows.Count, 1).End(xlUp).Rows.Row
    For t = lz To 2 Step -1
    If Cells(t, 1).Value = ("G1") Then
    Rows(t).Delete Shift:=xlUp

    End If
    Next t

    Das hat einmal funktioniert aber jetzt passiert gar nichts mehr.
    Ich bin sicher ihr seht den Fehler sofort, habe wenig Erfahrung mit VBA und finde trotz intensiver suche nichts im Netz. Falls ihr eine Beispieldatei braucht kann ich die auf Wunsch erstellen und hochladen.
    Gruss Jürg
     
    JueggeG, 11. Januar 2023
    #1
  2. Doming
    Doming User
    Moin,
    versuche mal
    Code:
    Option Explicit
    Private Sub Loeschen()
     Dim Zeile As Long
        Sheets("Offene Zahlungen Arbeiten").Select
        For Zeile = 2 To Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row
            If Cells(Zeile, 1) = Cells(1, 7) Then Rows(Zeile).Delete Shift:=xlUp
        Next Zeile
    End Sub
    
    Gruß
    Doming
     
  3. JueggeG
    JueggeG User
    Danke dir, funktioniert gut..
     
    JueggeG, 11. Januar 2023
    #3
  4. Beverly
    Beverly Erfahrener User

    Excel mit VBA ganze Zeile nach einem Wert in Zelle löschen

    Hi,

    das geht auch ohne Schleife über alle Zeilen, denn die Intelligente Tabelle ist ein Objekt im Tabellenblatt, welches man direkt ansprechen kann:

    Code:
    Sub ZeilenLoeschen()
        With Worksheets("Offene Zahlungen Arbeiten")
            .ListObjects(1).Range.AutoFilter Field:=1, Criteria1:=.Range("G1")
            .ListObjects(1).DataBodyRange.Columns(1).SpecialCells(xlCellTypeVisible).Delete
            .ListObjects(1).Range.AutoFilter Field:=1
        End With
    End Sub
    
    Außerdem: das Tabellenblatt muss dazu nicht erst selektiert/aktiviert werden - mit eine With-Anweisung kann man sich direkt darauf beziehen. Beachte dabei, dass vor jedem innerhalb der Anweisung angesprochenen Objekt (im Beispiel Zelle, ListObject) ein Punkt . stehen muss, um Excel deren Zugehörigkeit zum übergeordneten Objekt mitzuteilen.



    Excel mit VBA ganze Zeile nach einem Wert in Zelle löschen GrußformelExcel mit VBA ganze Zeile nach einem Wert in Zelle löschen Beverly's Excel - Inn
     
    Beverly, 11. Januar 2023
    #4
  5. Doming
    Doming User
    Hallo Beverly,
    hätte man das dann nicht auch so schreiben können?
    Code:
    Sub ZeilenLoeschen()
       With Worksheets("Offene Zahlungen Arbeiten").ListObjects(1)
           .Range.AutoFilter Field:=1, Criteria1:=.Range("G1")
           .DataBodyRange.Columns(1).SpecialCells(xlCellTypeVisible).Delete
           .Range.AutoFilter Field:=1
       End With
    End Sub
     
  6. Beverly
    Beverly Erfahrener User
    Hi,

    hast du deinen Code mal getestet? Es hat schon seinen Grund, weshalb ich ihn NICHT so geschrieben habe. Excel mit VBA ganze Zeile nach einem Wert in Zelle löschen *;)*


    Excel mit VBA ganze Zeile nach einem Wert in Zelle löschen GrußformelExcel mit VBA ganze Zeile nach einem Wert in Zelle löschen Beverly's Excel - Inn
     
    Beverly, 12. Januar 2023
    #6
  7. JueggeG
    JueggeG User
    Hallo Beverly
    Diesen Code versteh ich sogar besser. Funktioniert super. Danke für deine Hilfe.
    Noch eine Frage die ähnlich ist und ich deshalb nicht xtra ein neues Thema öffnen möchte:
    Ich habe für eine Kundenerfassung per VBA (Makro) bei einer Änderung der bestehenden Daten wie z.B. Adressänderung einen Code der mit der bestehenden Kundennummer und Namen alles in eine neue Zeile kopiert und dann die doppelten löscht.
    ActiveSheet.ListObjects("Kundenkartei").DataBodyRange.RemoveDuplicates Columns:=Array(1, 2), _
    Header:=xlYes
    Das Problem ist aber jetzt, es löscht mir den neuen und nicht den älteren Eintrag. Gibt es ein Code um den älteren Eintrag zu löschen? Der neue ist ja immer auf Zeile 2, Vielleicht kann man damit etwas machen?
    Zur Info: Ich muss es mit einer neuen Zeile lösen. Der Grund dafür wäre aber zu Umfangreich zu erklären. (Mehrere Szenarien mit dem gleichen Makro verbunden)
     
    JueggeG, 12. Januar 2023
    #7
  8. Beverly
    Beverly Erfahrener User

    Excel mit VBA ganze Zeile nach einem Wert in Zelle löschen

    Hi,

    du könntest dieses Problem komplett umgehen, wenn du zuerst die Zeile mit den alten Daten löschst und danach die neuen überträgst.


    Excel mit VBA ganze Zeile nach einem Wert in Zelle löschen GrußformelExcel mit VBA ganze Zeile nach einem Wert in Zelle löschen Beverly's Excel - Inn
     
    Beverly, 12. Januar 2023
    #8
  9. JueggeG
    JueggeG User
    Stimmt, daran hatte ich auch schon gedacht. Nur da ich das Makro auch für neue Kunden verwende findet es dann nichts zum löschen, da es diese Kundenummer noch nicht gibt. Da müsste ich mit if.. Arbeiten aber dafür reichen meine VBA Kenntnisse (noch) nicht.
     
    JueggeG, 12. Januar 2023
    #9
  10. Beverly
    Beverly Erfahrener User
    Vom Prinzip her also so:

    Code:
    Sub SuchenLoeschen()
        Dim rngSuche As Range
        With Worksheets(1).ListObjects(1).DataBodyRange
            ' in der 1. Spalte der Tabelle nach der Zahl 10 suchen, dabei komplette Übereinstimmung erforderlich
            Set rngSuche = .Columns(1).Find(10, lookat:=xlWhole)
            ' Suchbegriff wurde gefunden dann Zeile löschen
            If Not rngSuche Is Nothing Then rngSuche.EntireRow.Delete
    
            ' hier dann dein Code zum Kopieren       
    
        End With
    End Sub
    

    Excel mit VBA ganze Zeile nach einem Wert in Zelle löschen GrußformelExcel mit VBA ganze Zeile nach einem Wert in Zelle löschen Beverly's Excel - Inn
     
    Beverly, 12. Januar 2023
    #10
  11. JueggeG
    JueggeG User
    Herzlichen Dank Beverly, es passt Perfekt. Jetzt kann ich das Programm endlich fertig stellen.
    Lieber Gruss
    Jürg
     
    JueggeG, 13. Januar 2023
    #11
Thema:

Excel mit VBA ganze Zeile nach einem Wert in Zelle löschen

Die Seite wird geladen...
  1. Excel mit VBA ganze Zeile nach einem Wert in Zelle löschen - Similar Threads - Excel VBA Zeile

  2. Excel Zeile kopieren und unterhalb einfügen

    in Microsoft Excel Hilfe
    Excel Zeile kopieren und unterhalb einfügen: Hallo zusammen, ich bin leider nicht wirklich fit in Excel-VBA Programmierung und benötige somit eure Hilfe. Ich möchte in einem Excel-Terminplan eine neue Zeile unterhalb einfügen können, die...
  3. VBA Text in Zellen einfügen und farbigem Hintergrund

    in Microsoft Excel Hilfe
    VBA Text in Zellen einfügen und farbigem Hintergrund: Hallo zusammen, ich möchte eine Zeile mit Text und farbigem Hintergrund einfügen. Ich habe bereits einen kleinen Schnippsel VBA-Code gefunden. Dieser erstellt in der Tabelle Tabelle1 in Zeile 2...
  4. Excel-Solver mit VBA für viele Zeilen auf einmal

    in Microsoft Excel Hilfe
    Excel-Solver mit VBA für viele Zeilen auf einmal: Liebes Forum, ich stehe leider - als ziemlicher VBA-Neuling - vor einem großen Problem. ich würde gerne den Solver innerhalb einer Excel-Tabelle mehrfach anwenden. Genauer gesagt stehen in...
  5. Excel vba Löschen der gesuchten Zeile

    in Microsoft Excel Hilfe
    Excel vba Löschen der gesuchten Zeile: Hallo Ich habe eine UserForm erstellt in der sich 4 Comboboxen in Abhängigkeit befinden. Ich würde jetzt gerne die Auswahl, also die ganze Zeile, löschen lassen. Die Tabelle besteht auf 20...
  6. Bestimmte Zeilen Ausschneiden und in anderes Tabellenblatt einfügen

    in Microsoft Excel Hilfe
    Bestimmte Zeilen Ausschneiden und in anderes Tabellenblatt einfügen: Hallo, ich habe folgendes Problem: Mein Makro soll alle (kompletten) Zeilen von Tabelle 1 in Tabelle 2 verschieben, bei denen in der Spalte 1 der Wert größer als 4999 ist. Habe mir ein Makro...
  7. VBA - Mehrere Zeile aus einem Tabellenblatt in ein Neues einfügen

    in Microsoft Excel Hilfe
    VBA - Mehrere Zeile aus einem Tabellenblatt in ein Neues einfügen: Guten Morgen, ich habe mir folgenden Code gebastelt, sodass die ausgewählten Zellen aus deinem einen Tabellenblatt bei Ausführung des Makros in ein Neues eingefügt werden. Meine Frage ist, ob...
  8. Datenbereiche synchron erweitern (Zeilen einfüge/löschem/Inhalt kopieren)

    in Microsoft Excel Hilfe
    Datenbereiche synchron erweitern (Zeilen einfüge/löschem/Inhalt kopieren): Hallo zusammen, ich habe mich einmal an einem Zeitplan versucht, was soweit auch bisher ganz gut geklappt hat. Die Mitarbeiterliste habe ich in den Monaten bzw. auch in anderen...
  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