Uzupełnienie listy Comboboxa na bazie kolumny z arkusza
Private Sub ComboBox1_DropButtonClick()
Dim r As Range
With Worksheets("Users")
Set r = .Range("A2", .Range("A65536").End(xlUp))
End With
ComboBox1.ListFillRange = "Users!" & r.Address
End Sub
Czyszczenie Comboboxa
Sheets("Main").ComboBox1.Value = ""
Pobranie ODBC do Comboxa
https://forum.ozgrid.com/forum/index.php?thread/67938-get-system-data-so...
'Pobranie źródeł ODBC
Const HKEY_LOCAL_MACHINE = &H80000002
strComputer = "."
Set objRegistry = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")
strKeyPath = "SOFTWARE\ODBC\ODBC.INI\ODBC DATA SOURCES"
objRegistry.EnumValues HKEY_LOCAL_MACHINE, strKeyPath, arrValueNames, arrValueTypes
LoginForm.DSN_Combo.Clear
For i = 0 To UBound(arrValueNames)
strValueName = arrValueNames(i)
objRegistry.GetStringValue HKEY_LOCAL_MACHINE, strKeyPath, strValueName, strValue
With LoginForm.DSN_Combo
.AddItem strValueName
End With
Next
' Posortowanie źródeł ODBC alfabetycznie
Dim vSort() As Variant
vSort = Sort_Combo(LoginForm.DSN_Combo.List)
LoginForm.DSN_Combo.List = vSort
'Funkcja sortująca
Dim vSort() As Variant
vSort = Sort_Combo(LoginForm.DSN_Combo.List)
LoginForm.DSN_Combo.List = vSort
Public Function Sort_Combo(vArray As Variant) As Variant
Dim u As Long, l As Long, I As Long
Dim vTemp() As Variant
Dim vA As Variant, vB As Variant
Dim bSort As Boolean
bSort = False
vTemp = vArray
u = UBound(vArray, 1): l = LBound(vArray, 1)
Do
bSort = False
For I = l To u - 1
If vTemp(I, 0)
Else
bSort = True
vA = vTemp(I, 0)
vB = vTemp(I + 1, 0)
vTemp(I, 0) = vB
vTemp(I + 1, 0) = vA
End If
Next
Loop Until bSort = False
Sort_Combo = vTemp
End Function