Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
332to336
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
332to336
332to336
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Eingabemasken mit Kombinationsfeldern

Eingabemasken mit Kombinationsfeldern
10.11.2003 09:45:38
Matthias
Hallo zusammen,
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

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Eingabemasken mit Kombinationsfeldern
10.11.2003 11:25:25
Andreas St
Hallo,

der Code ansich ist Ok. Er gehört aber nicht in das Click-Ereignis von Combobox 2, sondern in das Change-Ereignis von Combobox 1.

Gruss
Andreas
AW: Eingabemasken mit Kombinationsfeldern
10.11.2003 11:35:17
Martin Bolleter
Hallo Matthias

deinen Teil 2 realisierst du über das DropButtonClick-Ereignis der zweiten ComboBox. Wie du richtig feststellst, löst du dieses Ereignis auch dann aus, wenn du eine Eingabe machen willst.

Ich würde daher vorschlagen, dass du das Füllen der Combobox2 über das Change-Ereignis der Combobox1 realisierst. Das macht ohnehin Sinn, denn nur wenn du in der ersten ComboBox eine Eingabe machst (resp den Wert änderst), muss die abhängige ComboBox2 entsprechend neu gefüllt werden.
Ich würde also den Teil 2 in der Private Sub ComboBox1_Change() unterbringen.

Viel Glück!
Gruss
Martin
Anzeige

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige