Microsoft Office Forum [ www.Office-Fragen.de ] >> READONLY <<

Microsoft Office 2003-2019 => Excel => Thema gestartet von: mo18 am Juli 24, 2019, 17:05:18 Nachmittag

Titel: Combobox in Userform sichtbar in Abhängigkeit einer anderen Combobox
Beitrag von: mo18 am Juli 24, 2019, 17:05:18 Nachmittag
Hi,
ich bin neu hier im Forum und hab gleich mal ein RIESEN-Problem.

Ich hab ein userform generiert zum Sammeln von Daten welche in einer Tabelle gespeichert werden sollten.

Wenn ich das Kontrollkästchen cmbKopf aktiviere, wird die combobox cmbKopf sichtbar. Die combobox hab ich über initialize auf width = 0 gesetzt.

Private Sub UserForm_Initialize()

   ' Me.txtDatum.Value = Date 'setzt das aktuelle Datum ein
    Me.txtZeit.Value = Format(Time, "hh:mm")
   
    DTPickerDatum = Date 'setzt das aktuelle Datum ein
    cmbKopf.Width = 0 'setzt die Comboboxen auf "unsichtbar"
    cmbBrust.Width = 0
    ComboBox1.Width = 10
   


Private Sub chkKopf_Click()

cmbKopf.Enabled = chkKopf.Value

If chkKopf.Value = True Then
    cmbKopf.Width = 140
   
  With cmbKopf
  .AddItem "Verletzung"
  .AddItem "Stich/Schnitt"
  .AddItem "Prellung/Quetschung"
  .AddItem "Abschürfung"
  .AddItem "Verbrennung/Verätzung"
  .AddItem "Sturz/Stoss"
  .AddItem "Fremdkörper"
  .ListIndex = 0
  End With
 

        Else
        cmbKopf.Width = 50
      End If
     

End Sub
Das alles klappt einwandfrei.

Nun möchte ich, sobald ich bei cmbkopf der list.index > 0 ist (wenn also eine Art der Verletzung gewählt wurde), eine weitere combobox sichtbar wird und dann ebenfalls ein Wert angegeben werden kann.
Nur das funktioniert nicht.

Ich hab mal das zusammengebastelt, aber wie gesagt funzt es nicht.
Private Sub combobox1_change()
ComboBox1.Enabled = cmbKopf.ListIndex > 0
If cmbKopf.ListIndex = Enabled Then
ComboBox1.Width = 140
With ComboBox1
  .AddItem "Verletzung"
  .AddItem "Stich/Schnitt"
  .AddItem "Prellung/Quetschung"
  .AddItem "Abschürfung"
  .AddItem "Verbrennung/Verätzung"
  .AddItem "Sturz/Stoss"
  .AddItem "Fremdkörper"
  .ListIndex = 0
  End With
End If

Else
ComboBox1.Width = 0

End Sub


Für eine Lösung wäre ich ziemlich dankbar ;-)

VG mo18
Titel: Antw: Combobox in Userform sichtbar in Abhängigkeit einer anderen Combobox
Beitrag von: maninweb am Juli 25, 2019, 08:05:26 Vormittag
Hallo,

verwende - statt der Breite Width - die Eigenschaft Visible (=False/True), um ein Steuerelement sichtbar zu machen oder nicht.
Und initialisiere den Inhalt der Steuerelemente in der UserForm_Initialize Prozedur (cmbKopf.AddItem "Verletzung", usw.),
denn so wie es aktuell ist, fügst Du die Elemente jedesmal neu hinzu.

Gruß