Prüfen ob ein Objekt in der Combobox ist (VBA)?
Also eine Combobox bei mir wird unter gewissen bedingungen mit unterschiedlichen Items gefüllt.
Nun soll eine MSGbox kommen wenn ein gewisses Item Vorhanden ist, meine Ansätze waren ganz unterschiedlich aber alle ohne Ergebnis
If combobox9.object(range("J2") then ...
Wichtig ist das es in der Combobox nur vorhanden sein soll und nicht unbedingt ausgewählt
Vielen Dank für die Hilfe
1 Antwort
Sub SucheListenwert(sWert As String) Dim i As Integer
ComboBox1.Clear ComboBox1.AddItem "A" ComboBox1.AddItem "C" ComboBox1.AddItem "B"
For i = 0 To ComboBox1.ListCount - 1 If ComboBox1.List(i) = sWert Then _ Debug.Print i & " " & ComboBox1.List(i) Next End Sub
Im Zweifel sollte Suboptimierer noch was dazu sagen, aber im Grund kannst Du Dir aus dem Beispiel ja einfach diese Passage nehmen und erweitern
For i = 0 To ComboBox1.ListCount - 1
If ComboBox1.List(i) = Range("J2").value Then msgbox...
Next
evtl. musst Du noch userform1. vor die Combobox setzen, also Userform1.Combobox1.list(i)
Richtig. Die Prozedur gibt das Element und dessen Index aus, wenn es gefunden wird und es baut die Liste auf. Entscheidend ist nur die Schleife, welche man in eine Funktion kopieren kann und die dann einen Boolschen Wert zurück gibt.
Versuch mal das:
Sub Main() ComboBox1.Clear ComboBox1.AddItem "A" ComboBox1.AddItem "C" ComboBox1.AddItem "B"
Debug.Print IsItemVorhanden(Range("J2").Value) Debug.Print IsItemVorhanden("C") Debug.Print IsItemVorhanden("D")
End Sub
Function IsItemVorhanden(sItemTitel) As Boolean Dim i As Integer IsItemVorhanden = False For i = 0 To ComboBox1.ListCount - 1 If ComboBox1.List(i) = sItemTitel Then IsItemVorhanden = True Exit Function End If Next End Function
Das kann man natürlich noch weiter ausbauen, indem man sogar die ComboBox mit übergibt. Es soll ja nur dazu dienen, zu veranschaulichen, wie du das umsetzen könntest.
Das sieht schon mal gut aus, aber ich kann nicht erkennen wo der da abfragt ob in der Combobox das Item: range("J2").value vorhanden ist .