AW: Letzte Zeile mit Bedingung löschen
04.10.2017 06:20:45
Werner
Hallo,
teste:
Public Sub Fehleintrag_raus()
Dim loWertE As Long 'Best.Nr. Einträge
Dim loWertP As Long 'Best.Nr. Produktionsstatus
Dim loWertL As Long 'Best.Nr. Eintr-Laufzettel
Dim loWertENr As Long 'lfd. Nummer Einträge
Dim loWertLNr As Long 'lfd. Nummer Eintr-Laufzettel
If IsNumeric(Worksheets("Einträge").Cells(Rows.Count, 3).End(xlUp)) Then
loWertE = Worksheets("Einträge").Cells(Rows.Count, 3).End(xlUp)
loWertENr = Worksheets("Einträge").Cells(Rows.Count, 3).End(xlUp).Offset(, -1)
Else
Exit Sub
End If
If IsNumeric(Worksheets("Produktionsstatus").Cells(Rows.Count, 3).End(xlUp)) Then
loWertP = Worksheets("Produktionsstatus").Cells(Rows.Count, 3).End(xlUp)
End If
If IsNumeric(Worksheets("Eintr-Laufkarte").Cells(Rows.Count, 3).End(xlUp)) Then
loWertL = Worksheets("Eintr-Laufkarte").Cells(Rows.Count, 3).End(xlUp)
loWertLNr = Worksheets("Eintr-Laufkarte").Cells(Rows.Count, 3).End(xlUp).Offset(, -2)
End If
If MsgBox("Letzten Eintrag tatsächlich löschen?", vbYesNo, "Sicherheitsabfrage") = vbNo Then _
Exit Sub
If loWertE = loWertP And loWertE = loWertL And loWertENr > 0 And loWertENr = loWertLNr Then
Worksheets("Produktionsstatus").Cells(Rows.Count, 3).End(xlUp).EntireRow.Delete
Worksheets("Eintr-Laufkarte").Cells(Rows.Count, 3).End(xlUp).EntireRow.Delete
Worksheets("Einträge").Cells(Rows.Count, 3).End(xlUp) = "Fehleintrag"
ElseIf loWertE = loWertP Then
Worksheets("Produktionsstatus").Cells(Rows.Count, 3).End(xlUp).EntireRow.Delete
Worksheets("Einträge").Cells(Rows.Count, 3).End(xlUp) = "Neu erfassen"
Else
MsgBox "Keine identischen Bestellnummern."
End If
End Sub
Da ist jetzt vor dem Löschen der Daten noch eine Sicherheitsabfrage drin.
Zudem setze ich den letzten Wert Spalte C im Blatt "Einträge" auf "Neu erfassen".
Das hat folgenden Grund:
Wenn dein "User" den letzten Eintrag aufgrund Fehlerfassung löscht und dann das Makro erneut ausführt, dann würde der jetzt letzte Eintrag bei Übereinstimmung der Bestellnummer ebenfalls gelöscht. In deiner Beispieldatei würde das zutreffen, somit wären dann beide Einträge weg (Kennwort "Nervöse Finger").
Gruß Werner