[Excel 2003] Combobox in Userform füllen

Lasersword

Cadet 4th Year
Registriert
Jan. 2008
Beiträge
123
Hallo zusammen,

hab wie immer ein Problem mit VBA.

Folgendes:
Ich habe eine Userform mit 3 Comboboxen, welche sich
in Abhängigkeit füllen sollen.

Hier der Code
Code:
Option Explicit
Dim Fall As Integer



Private Sub UserForm_Initialize()
   
'Werte für Combobox1

    With UserForm1.cboEbene1
       .AddItem "Fall 1"
       .AddItem "Fall 2"
    End With

'Feststellung des Falls    


   If UserForm1.cboEbene1.Value = "Fall 1" Then
   Fall = 1
   ElseIf UserForm1.cboEbene1.Value = "Fall 2" Then
   Fall = 2
   End If

'Füllen Combobox2

   If Fall = 1 Then
   With UserForm1.cboEbene2
      .AddItem "Handlung1"
      .AddItem "Handlung2"
   End With
   
   ElseIf Fall = 2 Then
   With UserForm1.cboEbene2
      .AddItem "Aussage1"
      .AddItem "Aussage2"
   End With
   
   End If
   
End Sub

Ich weiß nicht, was der Fehler ist, aber scheinbar wird die Variable "Fall" nicht gefüllt.

Egal, ob ich den If-Befehl im Combobox1 oder 2 hinterlege oder auch direkt in der Userform.

Wo ist der bzw. mein (Denk-) Fehler?

Vielen Dank für eure Hilfe.

Gruß,

Lasersword
 
Moin,

ich gehe davon aus, dass in der Combobox gar kein Wert gewählt (aktiviert) ist und darum auch keine der beiden von dir aufgeführten Möglichkeiten zutrifft. Mache zum Test doch einmal folgendes:
Code:
'Werte für Combobox1

    With UserForm1.cboEbene1
       .AddItem "Fall 1"
       .AddItem "Fall 2"
    End With

'Feststellung des Falls    
[B][COLOR="Red"]MsgBox "*" & UserForm1.cboEbene1.Value & "*"[/COLOR][/B]
...
... dann werden vermutlich nur die beiden Sternchen ohne Zwischenraum erscheinen. In dem Fall musst du irgendwie dafür sorgen, dass ein Wert ausgewählt wird und dann die 2. Box gefüllt wird.

Ansonsten: Wenn es tatsächlich nur 2 Auswahlen gibt, dann irritiert mich das "ElseIf" ziemlich ... (nur "Else" wäre vielleicht hilfreicher).
 
Moin Captain,

der Befehl mit der Msgbox macht ja unter "UserForm_Initialize()" keinen Sinn.

Hab den Befehl unter "cboEbene1_Change()" eingefügt und funktioniert.
Der Wert ist da.

Mein Beispiel war eine verkürzte Darstellung, deshalb auch nur 2 Varianten.
In Wirklichkeit habe ich zur Zeit 7.

Natürlich könnte ich die Abfrage auch direkt unter "cboEbene2_Change()" setzen.
Das führt aber zu dem Problem, dass sich die Auswahlen "aufsummieren".

Also wähle ich zuerst "Fall 1" aus. Bekomme ich in der 2. Combobox auch nur "Handlung 1" und "Handlung 2" angezeigt.
Wenn ich jetzt aber "Fall 1" auf "Fall 2" ändere (was durchaus vorkommenen kann), bekomme ich "Handlung 1", "Handlung 2", "Aussage 1" und "Aussage 2" zur Auswahl.
Das ist aber nicht gewollt. Will ja dann nur die "Aussagen" haben.

Lösungsvorschlag?

Gruß,

Lasersword

EDIT: Lösung gefunden.

Hab die Abfragen direkt hinter den jeweiligen Comboboxen hinterlegt.
Aber bei jeder Änderung den Inhalt mit ".clear" gelöscht.

EDIT2: Doch nicht.
War wohl zu schnell.

Ich lasse die Werte jedesmal bei "DropButtonClick" laden.
Problem: klick ich drauf, mach eine Auwahl, und klicke noch mal drauf,
habe ich alle Auswahlmöglichkeiten doppelt.

Wie kann ich das unterbinden?
 
Zuletzt bearbeitet:
Zurück
Oben