Non conosco le prestazioni, ma prova quanto segue. I tuoi dati dovrebbero essere nel foglio "db", dalla riga 2 in poi. Al posto di una casella combinata, inserisco una casella di testo (TextBox1
) e un elenco (ListBox1
) in un modulo utente.
Private Sub TextBox1_Change()
Dim v As String
Dim YourInput As String
Dim iIdx As Long
Dim CharNumber As Integer
YourInput = TextBox1.Text
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.EnableEvents = False
ListBox1.Clear
lLastRow = Worksheets("db").Cells(3, 1).End(xlDown).Row
CharNumber = Len(YourInput)
For iIdx = 2 To lLastRow
v = Worksheets("db").Cells(iIdx, 1).Text
If LCase(Left(v, CharNumber)) = LCase(YourInput) Then
ListBox1.AddItem v
End If
Next
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
Application.EnableEvents = True
End Sub
Private Sub ListBox1_Click()
MsgBox ("Your selection: " & ListBox1.Text)
'do your stuff
End Sub