Zeile löschen nach gefundener Zelle durch Makro

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

Betrifft: Zeile löschen nach gefundener Zelle durch Makro
von: Manuel
Geschrieben am: 08.10.2015 15:31:27

Hallo liebes Forum,
ich muss nochmal eure Hilfe in Anspruch nehmen bei einem Makro.
Mittels des Makros möchte ich eine ganze Zeile in einer Tabelle löschen die vorher gesucht werden muss. Der Code läuft ohne Probleme durch, erfüllt nur leider nicht das was er soll - kann mir einer erläutern was ich falsch mache?
Hier ist der code:
Option Explicit
Public numRows
Public numRowsA
Public DatenZeile
Public SuchKred

Sub Löschen()
Sheets("Data_History").Activate
        ' Suchkriterium festlegen
        SuchKred = Sheets("Data_History").TextBox1.Value
        'SuchKred1 = Sheets("Data_History").TextBox2.Value
        'SuchKred2 = Sheets("Data_History").TextBox7.Value
        'SuchKred2 = Trim(Cells(1, 3).Value)
        
        ' Im Datenblatt suchen
        Sheets("Parts").Activate
        ActiveSheet.Unprotect
        Range("A1").Select
        Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
        numRows = Selection.Rows.Count
        numRows = numRows + 1
         
        DatenZeile = 2
        Do While DatenZeile < numRows
        
            If (Trim(CStr(Sheets("Parts").Cells(DatenZeile, 1).Value))) = SuchKred Then
            
                'Speichert das Produkt
                Sheets("Parts").Cells(DatenZeile).Delete
                Exit Do
            
            End If
        
            DatenZeile = DatenZeile + 1
            
        Loop
        ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
        Sheets("History").Visible = True
        Sheets("History").Select
        Worksheets("Data_History").Visible = xlVeryHidden
        ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
        Application.ScreenUpdating = True
End Sub

Danke und beste Grüße,
Manuel

Bild

Betrifft: AW: Zeile löschen nach gefundener Zelle durch Mak
von: Daniel
Geschrieben am: 08.10.2015 15:43:44
HI
das könnten wir dir erklären, wenn du uns erst mal sagst, was der Code deinem Wunsch nach machen soll und was er dann tatsächlich macht.
Grundsätzlich fällt auf, dass der Code nicht besonders gut durchdacht ist, was ich daran festmache, dass die Aktion: "Löschen einer Zeile" mit "Speichert das Produkt" kommentiert ist.
da Löschen und Speichern nunmal zwei gegensätzliche Aktionen sind, stellt hier schon die Frage nach dem geistigen Zustand des Codeerstellters.
Gruß Daniel

Bild

Betrifft: AW: Zeile löschen nach gefundener Zelle durch Makro
von: Matthias L
Geschrieben am: 08.10.2015 15:45:51
Hallo
Ich vemute der Fehler liegt hier:
Sheets("Parts").Cells(DatenZeile).Delete
Das ist eine Zelle, keine Zeile!
Gruß Matthias

Bild

Betrifft: Es passiert nicht nichts
von: Michael
Geschrieben am: 08.10.2015 15:48:37
Hi Manuel,
wenn Du dieses kleine Makro ausprobierst:

Sub test()
Cells(3).Delete
End Sub

wirst Du folgenden Effekt sehen:
Userbild
Mit Cells(Nr.) löschst Du nämlich die Zelle Nr., von links nach rechts und oben nach unten gezählt.
Richtig heißen müßte es Rows(DatenZeile).Delete
Schöne Grüße,
Michael

Bild

Betrifft: AW: Es passiert nicht nichts
von: Manuel
Geschrieben am: 08.10.2015 15:53:55
Hallo ihr alle,
vielen Dank für die Schnelle Rückmeldung, dank deines Tipps Michael klappt jetzt alles.
Der geistige Zustand des Programmierers nimmt mit der gearbeiteten Stundenanzahl ab ;-), ich hatte den Code vom "Speichern eines Produktes" zum "löschen eines Produktes" umgeschrieben und in aller Eile vergessen die Kommentare zu ändern!
Danke,
Manuel

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Zeile löschen nach gefundener Zelle durch Makro"