15.01.2018, 20:32
Hallo
ich freue mich das wir die UserForm wenigstens im groben ans Laufen gebracht haben. Anbei ein überarbeiteter Code zum kopieren.
Den Wunsch mit den Hintergrundfarben konnte ich leider nicht erfüllen, hier fehlt mir das erforderliche Progrmmier Wissen. Im Internet fand ich einige Codes, bei mir liefen sie aber nicht!! Dafür habe ich die Eingabefeld auf Enable = False gesetzt, sie können so nicht mehr beliebig angewaehlt werden. Man sieht es an dem Pfeil in der ComboBox. d.h., der User muss die vorgeschriebene Reihenfolge einhalten, erst dann wird die naechste ComboBox freigegeeben. In UF1 habe ich noch ein paar Eingabe Prüfungen neu eingefügt.
Da bin ich mir nicht sicher wie das konkret gemeint ist?? Unter der gleichen Linie und dem gleichen Prozess können ja unter verschiedenem Datum unterschiedliche Probleme eingetragen sein. Dann nur den ersten Eintrag auflisten waere sicher nicht sinnvoll. Oder sehe ich da was falsch???
mfg Gast 123
ich freue mich das wir die UserForm wenigstens im groben ans Laufen gebracht haben. Anbei ein überarbeiteter Code zum kopieren.
Den Wunsch mit den Hintergrundfarben konnte ich leider nicht erfüllen, hier fehlt mir das erforderliche Progrmmier Wissen. Im Internet fand ich einige Codes, bei mir liefen sie aber nicht!! Dafür habe ich die Eingabefeld auf Enable = False gesetzt, sie können so nicht mehr beliebig angewaehlt werden. Man sieht es an dem Pfeil in der ComboBox. d.h., der User muss die vorgeschriebene Reihenfolge einhalten, erst dann wird die naechste ComboBox freigegeeben. In UF1 habe ich noch ein paar Eingabe Prüfungen neu eingefügt.
Zitat:UF1 bei der Suche bspw. im Feld "Produktionslinie" bei mehreren gefundenen, gleichen Einträgen
Da bin ich mir nicht sicher wie das konkret gemeint ist?? Unter der gleichen Linie und dem gleichen Prozess können ja unter verschiedenem Datum unterschiedliche Probleme eingetragen sein. Dann nur den ersten Eintrag auflisten waere sicher nicht sinnvoll. Oder sehe ich da was falsch???
mfg Gast 123
Code:
'UForm1 Modul
Dim Linie As String, Prozess As String
Dim Mitarb As String, Problem As String
Dim lz As Long, j As Long, Indx As Long
Dim Datum As Date, Bemerkung As String
Dim Txt1 As String
Private Sub cmdCancel_Click()
Unload Me
End Sub
Private Sub cboClear_Click()
With Worksheets("Daten")
lz = .Cells(Rows.Count, 2).End(xlUp).Row
UserForm1.lstErgebnis.Clear
Linie = UserForm1.cmb_ProdLinie
Prozess = UserForm1.cmb_AbfuellLinie
'Schleife zum auflisten aller IstErgebnisse
For j = 2 To lz
If .Cells(j, 4) = Linie And _
.Cells(j, 5) = Prozess Then
Datum = .Cells(j, 2)
Mitarb = .Cells(j, 3)
Problem = .Cells(j, 6)
Indx = UserForm1.lstErgebnis.ListCount
'Datum Format falsch, kann Format nicht benutzen!!
UserForm1.lstErgebnis.AddItem CStr(Datum)
UserForm1.lstErgebnis.List(Indx, 1) = Mitarb
UserForm1.lstErgebnis.List(Indx, 2) = Problem
End If
Next j
'Fokus auf Datum setzen
UserForm1.TextBox1.SetFocus
End With
End Sub
Private Sub cmdSave_Click()
With Worksheets("Daten")
lz = .Cells(Rows.Count, 2).End(xlUp).Row
Indx = UserForm1.lstErgebnis.ListIndex
Txt1 = UserForm1.TextBox1.Text
Bemerkung = UserForm1.txtRemarks.Text
If Indx < 0 Then MsgBox "Kein ListenBox Eintrag ausgewählt !!": Exit Sub
If Txt1 = "" Then MsgBox "Kein Eintrag in - Auftrag erledigt !!": Exit Sub
If Bemerkung = "" Then MsgBox "Kein Eintrag in - Bemerkungen !!": Exit Sub
Linie = UserForm1.cmb_ProdLinie
Prozess = UserForm1.cmb_AbfuellLinie
Datum = UserForm1.lstErgebnis.List(Indx, 0)
Mitarb = UserForm1.lstErgebnis.List(Indx, 1)
Problem = UserForm1.lstErgebnis.List(Indx, 2)
'ausgewaehlten Datensatz suchen
For j = 2 To lz
If .Cells(j, 2) = Datum And _
.Cells(j, 3) = Mitarb And _
.Cells(j, 4) = Linie And _
.Cells(j, 5) = Prozess And _
.Cells(j, 6) = Problem Then
.Cells(j, 8) = UserForm1.txtRemarks 'Bemerkung
.Cells(j, 7) = UserForm1.TextBox1 'Erledigt/Datum
Exit Sub
End If
Next j
MsgBox "Fehler beim Datensatz vergleichen - Nicht gebucht !!"
End With
End Sub
Private Sub TextBox1_AfterUpdate()
UserForm1.txtRemarks.SetFocus
End Sub
Private Sub UserForm_Initialize()
lz = Worksheets("Daten").Cells(Rows.Count, 2).End(xlUp).Row
cmb_ProdLinie.RowSource = "Daten!D2:D" & lz
cmb_AbfuellLinie.RowSource = "Daten!E2:E" & lz
End Sub
Code:
'UForm2 Modul
Dim Datum As Date, lz As Long
Private Sub cmd_Cancel_Click()
Unload Me
End Sub
Private Sub cmd_Save_Click()
With Worksheets("Daten")
lz = .Cells(Rows.Count, 2).End(xlUp).Row
If .Cells(lz, 2) = UserForm2.txt_Datum And _
.Cells(lz, 3) = UserForm2.cmb_Name And _
.Cells(lz, 4) = UserForm2.cmb_ProdLinie And _
.Cells(lz, 5) = UserForm2.cmb_AbfuellLinie And _
.Cells(lz, 6) = UserForm2.txt_Bemerkung Then
MsgBox "dieser Datensatz erxistiert schon !!": Exit Sub
End If
lz = lz + 1
.Cells(lz, 1) = lz - 1 'LastCell
.Cells(lz, 2) = UserForm2.txt_Datum 'Datum
.Cells(lz, 3) = UserForm2.cmb_Name 'Name
.Cells(lz, 4) = UserForm2.cmb_ProdLinie 'Produkt
.Cells(lz, 5) = UserForm2.cmb_AbfuellLinie 'Prozess
.Cells(lz, 6) = UserForm2.txt_Bemerkung 'Bemerkung
End With
End Sub
Private Sub cmb_Name_Change()
cmb_ProdLinie.Enabled = True
End Sub
Private Sub cmb_ProdLinie_Change()
cmb_AbfuellLinie.Enabled = True
End Sub
Private Sub UserForm_Initialize()
lz = Worksheets("Daten").Cells(Rows.Count, 2).End(xlUp).Row
Datum = CDate(Now)
UserForm2.txt_Datum = Left(Datum, 10)
cmb_Name.RowSource = "Daten!C2:C" & lz
cmb_ProdLinie.RowSource = "Daten!D2:D" & lz
cmb_AbfuellLinie.RowSource = "Daten!E2:E" & lz
cmb_ProdLinie.Enabled = False
cmb_AbfuellLinie.Enabled = False
End Sub