Hi everyone!
I have the following code to update a combobox list as text is entered in the control:
Private Sub CargaNOMBRES(Parcial As String)
Dim ListSize As Long
Dim Indice As Long
Dim Rango As Variant
With Worksheets("Ingreso Lecturas")
If .Cells(20, 2) <> "" Then
ListSize = .Range(.Cells(20, 2), .Cells(.Range("B:B").Rows.Count, 2)).Rows.Count ' CALCULATING THE NUMBER OF ITEMS OF THE WHOLE LIST
ListSize = ListSize - Application.WorksheetFunction.CountBlank(.Range(.Cells(20, 2), .Cells(19 + ListSize, 2)))
If Parcial = "" Then ' IF NO TEXT HAS BEEN ENTERED IN THE COMBOBOX, THEN CAPTURE ALL ITEMS IN THE RANGE
Set Rango = .Range(.Cells(20, 2), .Cells(19 + ListSize, 2))
ComboBoxNOMBRES.List = Rango.Value
Set Rango = Nothing
Else ' ONLY ADD THE ITEMS THAT MATCH THE PARTIALLY ENTERED TEXT
ComboBoxNOMBRES.Clear
For Indice = 1 To ListSize
If UCase(Mid(.Cells(Indice + 19, 2), 1, Len(Parcial))) = UCase(Parcial) Then
ComboBoxNOMBRES.AddItem .Cells(Indice + 19, 2)
End If
Next Indice
End If
End If
End With
End Sub
Private Sub ComboBoxNOMBRES_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Dim Parcial As String
Dim Caracter As String
If Len(ComboBoxNOMBRES.Text) = 3 Then ' FOR DEBUGGING PURPOSES ONLY
FirstKey = FirstKey
End If
If (KeyCode = 13) Then ' USER HAS COMPLETED THE ENTRY, THIS WORKS FINE!
EventoNOMBRES
CapturaEdición = False
FirstKey = True
End If
If (UCase(Chr(KeyCode)) Like "[A-Z]") Or (KeyCode = 8) Or (KeyCode = 46) Then ' USER IS MODIFIYING THE TEXT TO REFINE THE SEARCH
CargaNOMBRES (ComboBoxNOMBRES.Text) ' PROCEDURE FILTERS LIST JUST FINE!
ComboBoxNOMBRES.ListRows = 8 ' ATTEMPT TO INSTRUCT THE COMPUTER TO SHOW UP TO 8 ROWS IN THE LIST
ComboBoxNOMBRES.DropDown ' DROP THE LIST TO SHOW UP TO 8 ROWS ( THE LIST CONTAINS THE DESIRED ITEMS, PROBLEM IS ONLY ONE ROW, INSTEAD OF 8 IS SHOWN!
End If
KeyCode = 0
End Sub
Can anyone tell me what's the proble,? this thing it's driving me crazy!
THANK YOU VERY MUCH!
Bookmarks