AW: Bespiel
25.02.2018 13:32:23
Yannik
Das Ganze soll im folgenden Code für die Userform
passieren
Die Eingabe-Übertragung soll vorher gefiltert werden, d.h. keine Nachbearbeitung
in den Tabellenblättern (sollen später nur zum "Ansehen" beschrieben werden)
(Kann das gesamte Projekt, etc. nicht einfach so rausgeben: Ist ein Uni-Firmen-Projekt)
'--------------------------------------------------------------------------------------------
'-- Button "Eingabe übertragen"
'--------------------------------------------------------------------------------------------
Private Sub Cmd_EingabeUebertragen_Click()
'Alle Variablen für "Übertragungsfehler vermeiden" (Details => siehe unten)
Dim PflichtFelder As Boolean 'E1
Dim ArtikelMin As Boolean 'E2
Dim ArtikelNichtZahl As Boolean 'E3
Dim MengeNichtZahl As Boolean 'E4
Dim MengeZuGross As Boolean 'E5
'-- Variablenwerte
wshtDA = "DA_EingabeProtokoll"
wshtDATank = "DA"
infoDA = "DA4"
'Variablen-Werte (Eingabefehler)
'--EingabeFehler 1 vorbereiten: Fehlende Eingabe
PflichtFelder = (txt_ArtikelvarianteIN.Value = "" Or _
txt_MengeIN.Value = "" Or _
txt_Walze1IN.Value = "Bitte barcode scannen" Or _
txt_Walze1IN.Value = "")
'--EingabeFehler 2 vorbereiten: Artikelvariante muss min. 8 Zahlen haben
ArtikelMin = Len(txt_ArtikelvarianteIN) 7 'über 9.999.999 Meter
'------IN ENTWICKLUNG-------------------------------------------------------------------
'--EingabeFehler 6 vorbereiten: Walze darf nicht doppelt od. mehrfach gescannt werden _
'EingabeFehler 1:
If PflichtFelder = True Then
'Warnung, wenn zutreffend
MsgBox "Bitte Pflichtfelder(*) kontrollieren!" & Chr(10) & Chr(10) _
& "Empfohlene Reihenfolge der Eingabe:" & Chr(10) & _
"- Artikelvariante" & Chr(10) & _
"- Menge/M" & Chr(10) & _
"- Walzenkarte 'XYZ'", _
48, "Eingabefehler"
'EingabeFehler 2: Warnung, wenn zutreffend
ElseIf ArtikelMin = True Then
'Warnung, wenn zutreffend
MsgBox "Artikelvariante muss zwischen 8 und 10 Ziffern enthalten!", _
48, "Eingabefehler"
'EingabeFehler 3: Warnung, wenn zutreffend
ElseIf ArtikelNichtZahl = True Then
'Warnung, wenn zutreffend
MsgBox "Bitte nur Zahlen als " & """Artikelvariante""" & " eintragen", _
48, "Eingabefehler"
'EingabeFehler 4: Warnung, wenn zutreffend
ElseIf MengeNichtZahl = True Then
'Warnung, wenn zutreffend
MsgBox "Bitte nur Zahlen als " & """Menge""" & " eintragen", _
48, "Eingabefehler"
'EingabeFehler 5: Warnung, wenn zutreffend
ElseIf MengeZuGross = True Then
'Warnung, wenn zutreffend
MsgBox "Menge hat über 7 Stellen!" & Chr(10) & Chr(10) & _
"Tip: darauf achten, Artikelvariante und Menge nicht zu vertauschen." _
, 48, "Eingabefehler"
'------IN ENTWICKLUNG-----------------------------
'EingabeFehler 6: Warnung, wenn zutreffend...
'-- Übertragung (keine Eingabefehler)
Else
'Automatische Berechnungen, etc. für Performance abschalten (=> "mod_Performance")
Call AutoModusAus
'für "DA_EingabeProtokoll" (hier)
'nächste, freie Zeile
longLast = Worksheets(wshtDA).Cells(Rows.Count, 1).End(xlUp).Row + 1
With Worksheets(wshtDA)
.Cells(longLast, 1).Value = CDate(txt_DatumIN)
.Cells(longLast, 2).Value = Time
.Cells(longLast, 3).Value = CDec(txt_ArtikelvarianteIN)
.Cells(longLast, 4).Value = CDec(txt_MengeIN)
.Cells(longLast, 5).Value = infoDA 'aus Variable
'Textfelder
.Cells(longLast, 6).Value = CStr(txt_Walze1IN)
.Cells(longLast, 7).Value = CStr(txt_Walze2IN)
.Cells(longLast, 8).Value = CStr(txt_Walze3IN)
.Cells(longLast, 9).Value = CStr(txt_Walze4IN)
.Cells(longLast, 10).Value = CStr(txt_Walze5IN)
.Cells(longLast, 11).Value = CStr(txt_Walze6IN)
End With
'Bestätigungsmeldung
MsgBox "Eingabe erfolgreich", vbInformation, "Meldung"
'Arbeitsmappe speichern
ThisWorkbook.Save
Unload Me 'Userform neustarten
Usf_PDEingabe.Show
'Automatische Berechnungen, etc. für Performance einschalten (=> "mod_Performance")
Call AutoModusEin
End If
End Sub