En una lista de validación no es posible.
Pero ya que mencionaste una macro, es posible si pones un combobox de Control ActiveX en tu hoja.
Pon el siguiente código en tu hoja que tendrá el combobox, en la macro cambia "hoja2" por el nombre de la hoja donde tienes la lista de datos, también cambia "A" por la columna donde tienes la lista de datos.
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
Sigue las Instrucciones para poner la macro en los eventos de worksheet
- Abre tu libro de excel
- Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
- Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet(tu hoja)
- En el panel del lado derecho copia la macro
Para llenar por primera vez el combobox, pon la siguiente macro en los eventos de ThisWorkbook, cambia "Factura" por el nombre de la hoja que tiene el combobox. Cambia "Hoja2" por la hoja que tiene la lista de datos y también la columna "A"
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
Instrucciones para poner la macro en los eventos ThisWorkbook
- Abre tu libro de excel
- Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
- Del lado izquierdo dice: VBAProject, abajo dale doble click a ThisWorkbook
- En el panel del lado derecho copia la macro
Guardar tu libro, cierra el libro, vuelve a abrir el libro para que se cargue el combo, o bien, ejecuta la macro Workbook_Open directamente.
Ve al combobox y empieza a escribir letras, verás como la lista va cambiando.
.
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias
.
Avísame cualquier duda
.