Fehler bei Überprüfung
08.02.2023 05:54:59
Marc
Private Sub cmd_OK_Click()
'Variablen deklarieren
Dim ws As Worksheet
Dim tbl As ListObject
Dim lastRow As Long
Dim i As Long
Dim found As Boolean
'Tabellenblatt und Liste auswählen
Set ws = ThisWorkbook.Sheets("Datenbank")
Set tbl = ws.ListObjects("tbl_Datenbank")
'Combobox prüfen, ob ausgefüllt
If cbx_S.Value = "" Then
MsgBox "Bitte füllen Sie die Combobox aus!", vbExclamation
cbx_S.SetFocus
Exit Sub
End If
'Überprüfen, ob das Datum gültig ist
If Not IsDate(txt_Datum.Value) Then
MsgBox "Bitte geben Sie ein gültiges Datum ein!", vbExclamation
txt_Datum.SetFocus
Exit Sub
End If
'Prüfen, ob bereits ein identischer Datensatz vorhanden ist
found = False
For i = 1 To tbl.ListRows.Count
If tbl.ListRows(i).Range(1, 3).Value = cbx_S.Value And tbl.ListRows(i).Range(1, 1).Value = txt_Datum.Value Then
found = True
If MsgBox("Der Datensatz ist bereits vorhanden. Möchten Sie die Daten aktualisieren?", vbYesNo + vbQuestion) = vbYes Then
tbl.Range(lastRow, 1).Value = txt_Datum.Value
tbl.Range(lastRow, 2).Value = txt_Tag.Value
tbl.Range(lastRow, 3).Value = cbx_S.Value
tbl.Range(lastRow, 4).Value = txt_ST_h.Value
tbl.Range(lastRow, 5).Value = txt_Menge.Value
tbl.Range(lastRow, 6).Value = txt_Plan.Value
tbl.Range(lastRow, 7).Value = txt_Forcecast.Value
tbl.Range(lastRow, 8).Value = txt_Bänder.Value
tbl.Range(lastRow, 9).Value = txt_Nutzgrad.Value
tbl.Range(lastRow, 10).Value = txt_Prod_Stö.Value
tbl.Range(lastRow, 11).Value = txt_AT_Stö.Value
tbl.Range(lastRow, 12).Value = txt_Pause.Value
tbl.Range(lastRow, 13).Value = txt_Probe.Value
tbl.Range(lastRow, 14).Value = txt_AWW.Value
'... weitere Textboxen ...
Exit Sub
Else
Exit Sub
End If
End If
Next i
'Wenn kein identischer Datensatz vorhanden, dann in nächste freie Zeile einfügen
If Not found Then
lastRow = tbl.Range.Rows.Count + 1
tbl.ListRows.Add
tbl.Range(lastRow, 1).Value = txt_Datum.Value
tbl.Range(lastRow, 2).Value = txt_Tag.Value
tbl.Range(lastRow, 3).Value = cbx_S.Value
tbl.Range(lastRow, 4).Value = txt_ST_h.Value
tbl.Range(lastRow, 5).Value = txt_Menge.Value
tbl.Range(lastRow, 6).Value = txt_Plan.Value
tbl.Range(lastRow, 7).Value = txt_Forcecast.Value
tbl.Range(lastRow, 8).Value = txt_Bänder.Value
tbl.Range(lastRow, 9).Value = txt_Nutzgrad.Value
tbl.Range(lastRow, 10).Value = txt_Prod_Stö.Value
tbl.Range(lastRow, 11).Value = txt_AT_Stö.Value
tbl.Range(lastRow, 12).Value = txt_Pause.Value
tbl.Range(lastRow, 13).Value = txt_Probe.Value
tbl.Range(lastRow, 14).Value = txt_AWW.Value
'... weitere Textboxen ...
End If
'Userform schließen
Unload Me
End Sub
Anzeige