Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Bestimmte Zeilen entfernen per Messenger Eingabe
#1
Hallo zusammen

Ich habe folgenden Code für bestimmte Texte zu entfernen:

Code:
Option Explicit
Const Titel = "Nicht benötigte Artikel"
Const Msg = "Welche BMK werden nicht benötigt?"
   
Sub Artikel_entfernen_BMK()
    Dim i As Long          ' Zeilenzähler
    Dim tofind As Variant  ' Hiernach wird gesucht
    Dim found As Range      ' Eine Fundstelle oder Nothing
    tofind = InputBox(prompt:=Msg, Title:=Titel)
    If tofind = "" Then Exit Sub
    Application.ScreenUpdating = False
    For i = Worksheets("Erzeugte BMK").Cells.SpecialCells(xlCellTypeLastCell).Row _
        To 1 Step -1
        Set found = Worksheets("Erzeugte BMK").Rows(i).Find(what:=tofind, _
        LookIn:=xlValues, lookat:=xlWhole)
            If Not found Is Nothing Then Worksheets("Erzeugte BMK").Rows(i).Delete
    Next
    Application.ScreenUpdating = True
End Sub

Wie müsste ich den Code ändern, um anzugeben, welche Zeilen ist entfernt haben möchte? z.Bsp. Zeile 100-102 oder Zeile 35
Antworten Top
#2
Hallo,

da nicht ganz klar ist was du willst, habe ich erst mal eine Löschasabfrage eingebaut.

Beispiel:
Code:
Sub Artikel_entfernen_BMK()
    Dim i As Long          ' Zeilenzähler
    Dim tofind As Variant  ' Hiernach wird gesucht
    Dim found As Range      ' Eine Fundstelle oder Nothing
    tofind = InputBox(prompt:=Msg, Title:=Titel)
    If tofind = "" Then Exit Sub
    Application.ScreenUpdating = False
    For i = Worksheets("Erzeugte BMK").Cells.SpecialCells(xlCellTypeLastCell).Row _
        To 1 Step -1
        Set found = Worksheets("Erzeugte BMK").Rows(i).Find(what:=tofind, _
        LookIn:=xlValues, lookat:=xlWhole)
            If Not found Is Nothing Then
                If MsgBox("Die Zeile " & i & " soll gelöscht werden?", vbQuestion + vbYesNo, "Abfrage löschen") = vbYes Then
                    Worksheets("Erzeugte BMK").Rows(i).Delete
                End If
            End If
    Next
    Application.ScreenUpdating = True
End Sub

Ausgabe welche Zeilen gelöscht worden sind, dann so:

Code:
Sub Artikel_entfernen_BMK()
    Dim i As Long          ' Zeilenzähler
    Dim tofind As Variant  ' Hiernach wird gesucht
    Dim found As Range      ' Eine Fundstelle oder Nothing
    Dim varDelZeilen As String
    tofind = InputBox(prompt:=Msg, Title:=Titel)
    If tofind = "" Then Exit Sub
    Application.ScreenUpdating = False
    For i = Worksheets("Erzeugte BMK").Cells.SpecialCells(xlCellTypeLastCell).Row _
        To 1 Step -1
        Set found = Worksheets("Erzeugte BMK").Rows(i).Find(what:=tofind, _
        LookIn:=xlValues, lookat:=xlWhole)
            If Not found Is Nothing Then
                Worksheets("Erzeugte BMK").Rows(i).Delete
                varDelZeilen = varDelZeilen & " " & i & ","
            End If
    Next
    Application.ScreenUpdating = True
    MsgBox "gelöschte Zeilen " & varDelZeilen
End Sub
Gruß Uwe
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste