Modificación de código para autocompletar combobox
Dante buenas tardes, quisiera hacerle una consulta acerca del siguiente código que es de su autoría y que estoy implementando a mi formulario.
'Variable global
Dim cargando
'
Private Sub ComboBox1_Change()
'Por.Dante Amor
Application.ScreenUpdating = False
'si la variable global está prendida se sale de la rutina
'para no cargar nuevamente el combo
If cargando = True Then Exit Sub
'Establece en el objeto h2 la hoja2
Set h2 = Sheets("hoja2")
'en la variable col se almacena la letra "A"
col = "A"
'se prende la variable global
cargando = True
'como el combo fue modificado, entonces paso el dato que tiene
'el combo a la variable dato
dato = ComboBox1
'borro todo el combo
ComboBox1.Clear
'vuelvo a cargar el combo
For i = 2 To h2.Range(col & Rows.Count).End(xlUp).Row
'pero solamente voy a cargar en el combo los nombres
'que empiecen con lo que puse en la variable dato
'con like dato & "*" significa que cargue lo que sea
'que esté después de la variable dato
If UCase(h2.Cells(i, col)) Like UCase(dato) & "*" Then
'cargo el nombre que haya coincidido con la condición
ComboBox1.AddItem h2.Cells(i, col)
End If
Next
'Vuelvo a poner en el combo el valor que tiene la variable dato
'como borré el combo, ahora tengo que poner el valor que tenía
'antes de borrarlo, esto hace el efecto como si siempre estuviera
'ahí el valor capturado
ComboBox1 = dato
'
'Se activa otro control para que aparezca el combo completo
'se tiene que activar otro control, es un detalle que encontré
'al realizar este proceso, después de activar otro control, se
'regresa el foco al combo, con este paso, se puede mostrar todos
'los datos que coinciden con lo capturado en el combo
TextBox1. SetFocus
ComboBox1. SetFocus
ComboBox1. DropDown
'
Application.ScreenUpdating = True
cargando = False
End Sub
'
Private Sub UserForm_Activate()
'Por.Dante Amor
Set h2 = Sheets("hoja2")
'se cargan todos los nombres en el combo.
For i = 2 To h2.Range("A" & Rows.Count).End(xlUp).Row
ComboBox1.AddItem h2.Cells(i, "A")
Next
End SubEstoy tratando de modificar el codigo para que por ejemplo busque algo en el combobox2 de mi userform1, despues me salen todas las coincidencias abajo del combobox hasta ahi todo bien pero al presionar la tecla hacia abajo se escoge la primera coincidencia o primer item del dropdown y las demas coincidencias se desaparecen. Lo que no quiero es que se quiten las demas coincidencias al presionar la tecla hacia abajo.Pero de casuailidad nose como logre arreglar este problema en mi userform3 de mi combobox1, ahi si me funciona lo que estoy tratando de conseguir que es no borrar las demas coincidencias. Quiero implementar lo mismo para el combobox2 de mi userform1
Le anexo el link del archivo. Los userform se encuentran en el libro llamado A.P.U.S