Buscar con textbox

Hola tengo una duda con lo siguiente. Dentro de una hoja de excel en el cual tengo varios datos quisiera realizar una búsqueda mediante el uso de un textbox y que me cargue en un combobox todos los posibles, es decir:
Introduzco en el textbox
"Ro",
Y que en el combobox aparezcan los posibles con ro como ser:
"Rodrigo","Roberto","Rolando", etc.
Si me pudieras ayudar con esto por favor!
Gracias!

3 Respuestas

Respuesta
1
Puedes hacer lo siguiente:
Creas en una hoja un textbox (TextBox1) y un combobox (ComboBox1).
Por propiedades del textbox lo vinculas a la celda A1 (propiedad LinkedCell).
En esta misma hoja hay un listado desde la fila 2, de la cual voy a filtrar la primera columna.
Al TextBox le vas a agregar el siguiente código:
Private Sub TextBox1_Change()
Dim VlrFiltro$, UltimaFila#, RangoComboBox$
Application.ScreenUpdating = False
VlrFiltro = Cells(1, 1)
Selection.AutoFilter Field:=1, Criteria1:="*" & VlrFiltro & "*"
Range(Cells(3, 1), Cells(65536, 1)).Select
Selection.SpecialCells(xlCellTypeVisible).Select
Selection.Copy
Range("J1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Cells(2, 1).Select
Application.CutCopyMode = False
UltimaFila = Application.WorksheetFunction.CountA(Range("J:J"))
RangoComboBox = "J1:J" & UltimaFila
ComboBox1.ListFillRange = RangoComboBox
TextBox1.Select
TextBox1.Activate
End Sub
Nota: El rango de datos para el comboBox lo he colocado en la columna J, pero esto lo puede cambiar sin problemas.
Respuesta
Te recomiendo que uses la grabadora de macros y realices la acción.
1) Menú Herramientas > Macro > Grabar
2) Aplicas el autofiltro a la celda
3) Elegís que te muestre "(Personalizar)" y luego pones Ro*
4) Seleccionas todo el rango que quedó (donde están tus datos)
5) Presionás F5 (ir a) y en la ventana que queda vas a encontrar una opción que dice Solo celdas visibles (2)
6) Aceptás el rango
7) Paras la macro
Una vez que tengas este código avisame y te digo que agregarle para que con este rango seleccionado lo cargue en el combo...
Respuesta
-1
a), para eso tienes que insertar una función y un botón y poner el siguiente código:
Private Sub CommandButton1_Click()
    Actualizar
End Sub
Function Actualizar()
ComboBox1.Clear
Dim R1 As Range
Dim R2 As Range
'Aquí tienes que filtrar por el campo que deseas. Yo lo tengo para filtrar la columna A
Selection.AutoFilter Field:=1, Criteria1:=TextBox1.Value
Set R1 = Range("A2:A1000").SpecialCells(xlCellTypeVisible)
For Each R2 In R1
    ComboBox1.AddItem R2.Value
Next R2
Set R2 = Nothing
Set R1 = Nothing
End Function
[email protected]
hola jcgonzales, te comento que me sale un error de autofilter method of range class failed, en la linea Selection.AutoFilter Field:=1, Criteria1:=TextBox1.Value. No se si me podrias ayudar pq soy medio neofito con la programacion. Espero una respuesta prometedora. GRACIAS!!
Veo que no lees bien lo que puse "Aquí tienes que filtrar por el campo que deseas. Yo lo tengo para filtrar la columna A".
Donde dice Fiel:=1 corresponde a la columna A, de lógico tienes que poner la columna tuya, o sea, si quieres filtrar por Nombre y ésta etiqueta la tienes en la columna B entonces en lugar de 1 pones el 2 (Fiel:=2).
No sabes mucho de programación, te recomiendo que mejor utilices las Tablas Dinámicas o Filtros Avanzados, caso contrario se te hará un mundo si primero no estudias.
[email protected]

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas