Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen

Inhalt Kombinationsfelder

Betrifft: Inhalt Kombinationsfelder von: HeartBeat
Geschrieben am: 26.08.2004 08:55:17

Hallo,

Wie kann ich einem Drop-Down-Kombinationsfeld sagen, dass es nur die Zellinhalte anzeigen soll, die auch einen Inhalt haben?

Ich habe eine Liste die irgendwann um einige Zeilen erweitert werden soll. Das Kombinationsfeld sollte dann aber nicht extra umgestellt werden! Aber Momentan werden auch die Zellen ohne Inhalt zur "Auswahl" angezeigt, was aber bei der Funktion Probleme gibt.

Danke

Michael

  


Betrifft: AW: Inhalt Kombinationsfelder von: Nike
Geschrieben am: 26.08.2004 09:11:04

Hi,
ist das ein Kombifeld in ner Tabelle oder von ner Userform?

Bye

Nike


  


Betrifft: AW: Inhalt Kombinationsfelder von: HeartBeat
Geschrieben am: 26.08.2004 09:15:10

Das ist ein Kombinationsfeld aus der Steuerelemente Toolbox!


  


Betrifft: AW: Inhalt Kombinationsfelder von: Nike
Geschrieben am: 26.08.2004 09:19:07

Hi,

wenn du die Werte mit combobox1.addItem einfuegst,
dann pruefe vorher:
if cells(lngRow,1) <> "" then
combobox1.addItem cells(lngRow,1)
end if

Bye

Nike


  


Betrifft: AW: Inhalt Kombinationsfelder von: HeartBeat
Geschrieben am: 26.08.2004 09:21:56

Ich habe die Daten nur über Listfillrange in den Eigenschaften eingefügt! Kann ich dort auch etwas einstellen? Wie muss ich den obigen Code einbinden, dass das funktioniert?


  


Betrifft: AW: Inhalt Kombinationsfelder von: Nike
Geschrieben am: 26.08.2004 09:40:05

Hi,
also erst mal listfillreange entfernen und dann
beim Formularcode so:

Private Sub UserForm_Initialize()
Dim wks As Worksheet
Set wks = Worksheets(1) ' Daten sind im ersten Blatt
With wks
    lngRow = 1 ' von der ersten Zeile
    Do
        If .Cells(lngRow, 1) <> "" Then
            ComboBox1.AddItem Cells(lngRow, 1)
        End If
        lngRow = lngRow + 1
    Loop Until lngRow = 10 ' bis zur 10ten Zeile
End With
End Sub


Bye

Nike


  


Betrifft: AW: Inhalt Kombinationsfelder von: HeartBeat
Geschrieben am: 26.08.2004 10:26:15

irgendwie gibt es probleme, dass das ganze eingelesen wird. Wenn ich statt UserForm_Initialize() - Combobox1_dropbuttonclick nehme, dann funktioniert es zwar, aber ich bekomme logischerweise bei jedem click auf den Dropdownbutton die Wert aufs neue zu der Liste.

Gibt es irgend etwas wie Remove all items? Das wäre mir egtl das liebste. Ansonsten bräuchte ich einen Befehl, der nur einmal ausgeführt wird.

Gruss

Michael


  


Betrifft: AW: Inhalt Kombinationsfelder von: Nike
Geschrieben am: 26.08.2004 11:12:11

Hi,
voerher wohl erst mal alles loeschen:

Do
Application.EnableEvents = False
ComboBox1.RemoveItem 0
Application.EnableEvents = True
Loop Until ComboBox1.ListCount = 0


Bye

Nike


  


Betrifft: AW: Inhalt Kombinationsfelder von: HeartBeat
Geschrieben am: 26.08.2004 11:31:45

Jetzt hat er ein Problem, wenn das Feld schon leer ist. Habe versucht das ganze als IF-Funktion umzustellen...aber auch ohne erfolg. Der Code sieht jetzt so aus:

Private Sub Rollenfeld_Dropbuttonclick()
Dim wks As Worksheet
Set wks = Worksheets(3)
If Not Rollenfeld.ListCount = 0 Then
Do
Application.EnableEvents = False
Rollenfeld.RemoveItem 0
Application.EnableEvents = True
Loop Until Rollenfeld.ListCount = 0
End If

With wks
    lngrow = 3
    Do
        If wks.Cells(lngrow, 1) <> "" Then
            Rollenfeld.AddItem wks.Cells(lngrow, 1)
        End If
        lngrow = lngrow + 1
    Loop Until wks.Cells(lngrow, 1) = ""
End With

End Sub



 

Beiträge aus den Excel-Beispielen zum Thema "Inhalt Kombinationsfelder"