Clever-Excel-Forum

Normale Version: Zeilen Löschen basierend auf Combobox Auswahl
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Zusammen,

Ich stehe vor folgendem Problem:

Ich habe mehrere identische Tabellen mit jeweils 14 Zeilen.
Diese Tabellen können an mehreren Stellen im Tabellenblatt angelegt sein.

Also bspw. von Zeile 3-16; 20-34, etc. Hier gibt es kein Muster.

Die einzige Unterscheidung der Tabellen befindet sich in der jeweils zweiten Zeile der jeweiligen Tabelle. Der Inhalt dieser "einzigartigen" Zelle kann variieren.

Über eine Combobox in einer Userform kann ich bereits diesen spezifischen Wert auswählen.

Was ich brauchen würde:

Mein Wunsch wäre nun, dass ich anhand der Combobox Auswahl, im Tabellenblatt "Übersicht" immer die Zeilen Löschen kann, die sich zwischen sowohl 1 über und 12 Zeilen unterhalb der Zeile mit dem "einizigartigen" Inhalt befindet.

Also bspw. die Zeilen 3-16; wobei sich in zeile 4 der "einzigartige" Inhalt befindet, welchen man über die Combobox bestimmt hat.

Ich könnte niemals diesen Code schreiben, aber von der Logik her wäre er MmN so:

Wenn Combobox Auswahl = X; Dann finde "X" in Tabellenblatt "Übersicht".Spalte A und lösche alle Zeilen 1 über "X"; Zeile mit "X" und 12 Zeilen unter X.



Ich würde mich freuen, wenn soetwas möglich wäre und Danke schon einmal für den Support :)

PS: Ich weis, dass es hilfreich wäre, wenn ich das Dokument hochladen würde, da es aber voller Arbeitsinterna ist würde ich darauf gerade nur ungern zurückgreifen wollen. Sollte es notwendig sein, werde ich eine Möglichkeit finden.

Danke!
Hallo,


Zitat:Sollte es notwendig sein, werde ich eine Möglichkeit finden.


mach das.
Hallo,

Code:
Private Sub CommandButton1_Click()
Dim raFund As Range

If Me.ComboBox1.ListIndex > -1 Then
    For Each ws In ThisWorkbook.Worksheets
        With ws
            Set raFund = .Columns("A").Find(what:=Me.ComboBox1, LookIn:=xlValues, lookat:=xlWhole)
            If Not raFund Is Nothing Then
                .Range("A" & raFund.Offset(-1).Row & ":A" & raFund.Offset(12).Row).EntireRow.Delete
            End If
        End With
    Next ws
End If
       
Set raFund = Nothing
End Sub

Achtung: Sollte dein "Suchbegriff" in irgendeinem Blatt in Zeile 1 stehen, dann läuft der Code in einen Fehler.

Gruß Werner
Lieber Werner,

vielen Dank - Deine Lösung funktioniert bereits perfekt!

Lieber Klaus-Dieter, dir auch vielen Dank für deine Unterstützung.

Beste Grüße
Tobias