Thema Datum  Von Nutzer Rating
Antwort
Rot Fehler bei einer Überprüfung
08.02.2023 05:39:00 Marc
Solved
08.02.2023 13:09:58 Gast81961
Solved

Ansicht des Beitrags:
Von:
Marc
Datum:
08.02.2023 05:39:00
Views:
559
Rating: Antwort:
 Nein
Thema:
Fehler bei einer Überprüfung

Guten morgen, ich bin absoluter Anfänger in VBA und komme nicht weiter. Ich probiere in meinem VBA vieles zu Kommentieren was ich mache oder besser möchte. Ich habe folgendes Problem. Ich möchte folgendes wir haben zb. vier Schichten also Schicht A, B, C, D diese trage ich mit der Combobox ein. Jeden Tag macht jede Schicht eine Eingabe. Also gibt es den Eintrag 08.02.2023 / A,B,C,D. Im Code möchte ich überprüfen ob das schon in der Tabelle steht und wenn ja soll eine Fehlermeldung aufgehen.

Im Moment kann ich die Daten so oft eingeben wie ich möchte. Obwohl ich das doch überprüfe. Wenn mir eine helfen könnte wäre super bitte mit erklärung was ich falsch mache, möchte ja lernen.

 

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


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Fehler bei einer Überprüfung
08.02.2023 05:39:00 Marc
Solved
08.02.2023 13:09:58 Gast81961
Solved