Eingabemasken mit Kombinationsfeldern
10.11.2003 09:45:38
Matthias
nachdem ich darauf aufmerksam gemacht wurde, dass meine letzte Problembeschreibung etwas unscharf war, hier nun die ausführliche Version.
1. Mein Ziel ist es mit einer UserForm eine Eingabemaske zu programmieren.
2. Diese Eingabemaske soll 4 Kombinationsfelder und 2 Textfelder enthalten.
3. Nachdem das 1. Kombinationsfeld beim öffnen des UserForm gefüllt werden soll, möchte ich, dass die Einträge in den nachfolgenden Kombinationsfeldern jeweils von der Wahl im vorherigen Kombinationsfeld abhängen.
4. Über einen CommandButton sollen anschließend die Daten aus dem UserForm in Datenblatt geschrieben werden.
Stand des Programms in der Umgebung "UserForm1":
1.
'Eintrag in das 1. Kombinationsfeld aus Tabellendaten (funktioniert)
Private Sub UserForm_Initialize()
Dim c As Range
For Each c In Sheets(1).Range("J3:J6")
ComboBox1.AddItem c
Next c
End Sub
Dieser Teil funktioniert!!!
____________________________________________
2. 'Eintrag in das 2. Kombinationsfeld in Abhängigkeit von Kombinationsfeld 1
'ListIndex 0 entspricht Zeile 1 im Kombinationsfeld 1 usw.
Private Sub ComboBox2_DropButtonClick()
ComboBox2.Clear
If ComboBox1.ListIndex = 0 Then
ComboBox2.AddItem "101"
ComboBox2.AddItem "102"
ComboBox2.AddItem "103"
ComboBox2.AddItem "104"
ComboBox2.AddItem "105"
ComboBox2.AddItem "106"
ComboBox2.AddItem "107"
ComboBox2.AddItem "108"
ComboBox2.AddItem "109"
ComboBox2.AddItem "110"
ComboBox2.AddItem "201"
ComboBox2.AddItem "202"
ComboBox2.AddItem "305"
ComboBox2.AddItem "306"
ElseIf ComboBox1.ListIndex = 1 Then
ComboBox2.AddItem "506"
End If
End Sub
Das Problem bei diesem Programmteil ist, dass zum Füllen des 2. Komb.Feld das Feld zwar beim Klicken immer gelehrt wird und die Wahl des 1. Kombinationsfeldes abgefragt wird, dass aber auch wenn ich eine Wahl treffen will, also auf einen Eintrag klicke, alles wieder gelöscht wird
____________________________________________
3.
'mit diesem Programmteil, will ich die Daten nach Abschluss in die
'Tabelle eintragen lassen
Private Sub CommandButton1_Click()
If ActiveSheet.Protect Then ActiveSheet.Unprotect
On Error GoTo Errorhandler
With ActiveSheet.Cells(Columns.Count, 1).End(xlUp)
.Offset(1, 0).Value = ComboBox1
.Offset(1, 1).Value = ComboBox2
End With
ComboBox1 = " "
ComboBox2 = " "
ActiveSheet.Protect
Exit Sub
Errorhandler:
MsgBox "Falsche Eingabe"
End Sub
'Dieser Teil funktioniert
_____________________________________
Wie bereits beschrieben besteht das Problem im wesentlichen in der Abfrag ab dem 2. kombinationsfeld. Wenn ich den Clear-Befehl weglasse, verlängert sich die List mit jedem Klick.
Ich hoffe mir kann jemand helfen, da ich noch blutiger Anfänger bin und GAR NICHT mehr weiterkomme.
Vielen Dank für Eure Hilfe. Ich hoffe ich kann mich eines Tages revanchieren.
Matthias