Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

[VBA] ComboBox in UserForm automatisch minimieren
#1
Hallo Zusammen,

ich brauche mal wieder eure Hilfe.

In meiner UserForm habe ich eine ComboBox mit über 100 Werten. Mein Wunsch ist es nun, dass wenn ich in der ComboBox anfange zu schreibe, dass die DropDown-Liste nur noch die Werte angezeigt werden, die die entsprechenden Buchstaben enthalten. (Das klappt soweit ganz gut)

Jedoch wenn ich dann einen Wert aus der DropDown-Liste auswähle, bleibt die ComboBox leer.

Hier mein Code für die ComboBox:
Code:
Private Sub ComboBox1_Change()
    Worksheets("DataSheet").Range("B1").Value = ComboBox1.Value
    ComboBox1.RowSource = "=ddCustomer"    'Definierte Range mit Namen
End Sub

Im Arbeitsblatt "DataSheet" habe ich in der Spalte "D" folgende Formel eingebaut: 

Code:
=WENNFEHLER(INDEX(Customer;AGGREGAT(15;6;(ZEILE(Customer)-1)/(--(SUCHEN($B$1;Customer)>0));ZEILE()-1);1);"")


Und die definierte Range mit dem Name "ddCustomer" habe ich über den Namens-Manager folgendermaßen abgespeichert:
Code:
=DataSheet!$D$2:INDEX(DataSheet!$D$2:$D$105;ZÄHLENWENN(DataSheet!$D$2:$D$105;"?*"))

Ich hoffe jemand kann mir helfen dieses Problem zu lösen oder einen besseren Weg zeigen wie ich das machen kann.

Schöne Grüße
Antwortento top
#2
Verzichte auf Rowsource.
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antwortento top
#3
Hallo snb,

okay, aber dann stellt sich mir die Frage wie ich die Werte sonst der ComboBox zuweise?

Grüße
Antwortento top
#4
schau mal z.B https://www.snb-vba.eu/VBA_Fill_combobox...ox_en.html
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antwortento top
#5
(15.04.2019, 10:22)snb schrieb: schau mal z.B https://www.snb-vba.eu/VBA_Fill_combobox...ox_en.html

Ich hab es jetzt mal so probiert:

Code:
Private Sub dbCustomer_Change()
    
    Dim customer As Object
    
    Worksheets("DataSheet").Range("B1").Value = ComboBox1.Value
    
    For Each customer In Worksheets("DataSheet").Range("D2:D479")
        If customer <> "" Then
            ComboBox1.AddItem customer.Value
        End If
    Next
End Sub


Es wird mir jetzt zwar der ausgewählte Wert angezeigt, aber die DropDown-Liste verringert sich nicht. 

Ich komm leider nicht drauf wie ich das machen muss.
Antwortento top
#6
Hallöchen,

eventuell machst Du sie erst mal leer bevor Du wieder was anfügst?
Geht z.B. mit
ComboBox1.Clear
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
Antwortento top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste