VBA -Kriterium in Tabelle suchen und Zeile löschen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: VBA -Kriterium in Tabelle suchen und Zeile löschen
von: Michael
Geschrieben am: 21.05.2015 14:43:50

Hallo zusammen,
ich möchte in einer Tabelle mittels VBA innerhalb einer Spalte nach einem Wert suchen(Spaltenüberschrift lautet Name) und dieses mitsamt der ganzen Zeile löschen (gesuchter Wert Schmitz).
Am Beispiel erklärt:
Das Makro soll in der gesamten Tabelle innerhalb der Spalte "Name" nach dem Wert "Schmitz" suchen. Kommt dieser in einer Zeile vor so soll dann die komplette Zeile gelöscht werden.
Kann mir jemand hierzu einige Tipps geben?
Danke im voraus!
Gruß
Michael

Bild

Betrifft: VBA -Kriterium in Tabelle suchen und Zeile löschen
von: Nepumuk
Geschrieben am: 21.05.2015 15:19:53
Hallo,
soll das Makro selber nach der Spalte suchen oder ist die fest? Was wenn z.B. Schmitz-Maier in einer Zelle steht soll es dann trotzdem den Eintrag als gefunden ansehen? Was wenn es 2 oder 3 Schmitz gibt?
Gruß
Nepumuk

Bild

Betrifft: AW: VBA -Kriterium in Tabelle suchen und Zeile löschen
von: Michael
Geschrieben am: 21.05.2015 15:31:36
Hallo Nepumuk,
die Spalte ist fest. Das Makro soll die komplette Zeile löschen wenn Schmitz vorkommt, und auch nur wenn das Kriterium in dieser Spalte und genau mit Schmitz vorkommt. Es gibt mehrere Schmitz. Das Makro soll alle davon mitsamt der kompletten Zeile löschen.
Danke und Gruß
Michael

Bild

Betrifft: VBA -Kriterium in Tabelle suchen und Zeile löschen
von: Nepumuk
Geschrieben am: 21.05.2015 15:38:36
Hallo,
teste mal:

Public Sub Loeschen()
        Dim strReturn As String
        Dim objCell As Range
        Do
            strReturn = InputBox("Bitte den zu löschenden Namen eingeben.", "Eingabe")
            If StrPtr(strReturn) = 0 Then Exit Do
            With Columns("H") 'Spalte anpassen !!!!
                Do
                    Set objCell = .Find(What:=strReturn, LookIn:=xlValues, _
                        LookAt:=xlWhole, MatchCase:=True)
                    If Not objCell Is Nothing Then
                        objCell.EntireRow.Delete
                    Else
                        Exit Do
                    End If
                Loop
            End If
        End With
    Loop
End Sub

Gruß
Nepumuk

Bild

Betrifft: Da ist noch ein Fehler drin
von: Nepumuk
Geschrieben am: 21.05.2015 15:40:35
So passts:

Public Sub Loeschen()
    Dim strReturn As String
    Dim objCell As Range
    Do
        strReturn = InputBox("Bitte den zu löschenden Namen eingeben.", "Eingabe")
        If StrPtr(strReturn) = 0 Then Exit Do
        With Columns("H") 'Spalte anpassen !!!!
            Do
                Set objCell = .Find(What:=strReturn, LookIn:=xlValues, _
                    LookAt:=xlWhole, MatchCase:=True)
                If Not objCell Is Nothing Then
                    objCell.EntireRow.Delete
                Else
                    Exit Do
                End If
            Loop
        End With
    Loop
End Sub


Bild

Betrifft: AW: Da ist noch ein Fehler drin
von: Michael
Geschrieben am: 21.05.2015 16:05:24
Danke Nepumuk,
das klappt sehr gut jedoch nun folgendes Problem. Zwar ist die InputBox ne super Sache, jedoch in diesem Fall nicht nötig. Das Kriterium bleibt stets das gleiche oder kann ich dann dementsprechend im Code anpassen.
Ich würde zB auch gerne die einzelnen Sheets klar definieren damit das Makro entsprechend nacheinander die Löschvorgänge durchführt und die Prozedur unterscheidet sich je nach Sheet.
Ein Beispiel:
Angenommen 3 Sheets
im ersten kann der Wert sowohl in Spalte E aber auch in F vorkommen. In diesem Fall soll die komplette Zeile gelöscht werden.
im zweiten sheet kann der Werte auch in der Spalte E und F vorkommen. Die Zeile soll aber nur dann komplett gelöscht werden wenn der Wert in F vorkommt.
im dritten Sheet etwas komplzierter. Kommt der Wert in spalte E vor soll sie komplett gelöscht werden. Spalte F wiederum soll "Schmitz" enthalten, tut sie das nicht soll sie komplett gelöscht werden.
Kannst du ansatzweise verstehen um was es mir geht?
Gruß und schonmal Danke für deinen Code. An dem werde ich auf jeden Fall weiter arbeiten.
Michael

Bild

Betrifft: Null Bock auf Salamitaktik o.T.
von: Nepumuk
Geschrieben am: 21.05.2015 17:22:23


 Bild

Beiträge aus den Excel-Beispielen zum Thema "VBA -Kriterium in Tabelle suchen und Zeile löschen"