Sigue los pasos.
Si el combo está en una hoja:
Pon el siguiente código en los eventos del libro para cargar por primera vez los nombres en el combo
Private Sub Workbook_Open()
'Por.Dante Amor
Sheets("Factura").Select
Set h2 = Sheets("hoja2")
col = "A"
ActiveSheet.ComboBox1.Clear
For i = 2 To h2.Range(col & Rows.Count).End(xlUp).Row
ActiveSheet.ComboBox1.AddItem h2.Cells(i, col)
Next
End Sub
Cambia "Factura" por el nombre de tu hoja donde está el combo.
Ahora en los eventos de la hoja pon el siguiente código
Dim cargando
Private Sub ComboBox1_Change()
'Por.Dante Amor
Application.ScreenUpdating = False
If cargando = True Then Exit Sub
Set h2 = Sheets("hoja2")
col = "A"
cargando = True
dato = ComboBox1
ComboBox1.Clear
For i = 2 To h2.Range(col & Rows.Count).End(xlUp).Row
If UCase(h2.Cells(i, col)) Like UCase(dato) & "*" Then
ComboBox1.AddItem h2.Cells(i, col)
'j = j + 1
End If
Next
ComboBox1 = dato
'
'Se activa una celda para que aparezca el combo completo
Range("Z1000"). Activate
ComboBox1. Activate
ComboBox1. DropDown
'
Application.ScreenUpdating = True
cargando = False
End Sub
Tienes que crear una hoja llamada "hoja2" para poner los nombres en la columna A, empezando en la fila 2.
Cambia la propiedad MatchEntry del combo a 2 - frmMatchentryNone
Si el combo lo tienes en un userform, pon el siguiente código en el userform
Dim cargando
'
Private Sub ComboBox1_Change()
'Por.Dante Amor
Application.ScreenUpdating = False
If cargando = True Then Exit Sub
Set h2 = Sheets("hoja2")
col = "A"
cargando = True
dato = ComboBox1
ComboBox1.Clear
For i = 2 To h2.Range(col & Rows.Count).End(xlUp).Row
If UCase(h2.Cells(i, col)) Like UCase(dato) & "*" Then
ComboBox1.AddItem h2.Cells(i, col)
End If
Next
ComboBox1 = dato
'
'Se activa una celda para que aparezca el combo completo
TextBox1. SetFocus
ComboBox1. SetFocus
ComboBox1. DropDown
'
Application.ScreenUpdating = True
cargando = False
End Sub
'
Private Sub UserForm_Activate()
'Por.Dante Amor
Set h2 = Sheets("hoja2")
For i = 2 To h2.Range("A" & Rows.Count).End(xlUp).Row
ComboBox1.AddItem h2.Cells(i, "A")
Next
End Sub
De igual manera deberás tener una hoja "hoja2", en la columna A poner los nombres.
Cambia la propiedad MatchEntry del combo a 2 - frmMatchentryNone
Agrega un textbox1 a tu formulario, o cambia en la macro Textbox1 por algún textbox que tengas en el formulario.
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias