Hey Mase,
Vielen Dank für den Denkanstoss..
Habe es auf die schnelle folgendermaßen gelöst (aktuell noch ohne Fehlerbehandlung).
Ich habe eine Function getListIndex() erstellt:
Die packt die .List-Eigenschaft einer ComboBox in ein Array, durchsucht das Array und gibt die Position (also den ListIndex) des Treffers zurück:
Option Explicit
Private Sub UserForm_Initialize()
Dim varArray(2, 1) As Variant
Me.ComboBox1.ColumnCount = 2
Me.ComboBox1.BoundColumn = 1
Me.ComboBox1.TextColumn = 2
Me.ComboBox1.ColumnWidths = "0;20"
varArray(0, 0) = 10
varArray(1, 0) = 20
varArray(2, 0) = 30
varArray(0, 1) = "Apfel"
varArray(1, 1) = "Birne"
varArray(2, 1) = "Zitrone"
Me.ComboBox1.List = varArray
Me.ComboBox1.ListIndex = getListIndex(ComboBox1, 10) '<- Hier kann ein beliebiger Value übergeben werden, zurück kommt hier der ListIndex
End Sub
Private Function getListIndex(cmb As ComboBox, varValue As Variant) As Variant
Dim varArray As Variant
Dim i As Long
varArray = cmb.List
For i = LBound(varArray) To UBound(varArray)
If varArray(i, 0) = varValue Then
getListIndex = i
Exit For
End If
Next
End Function
|