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 Sub
Estoy 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