UniversoExcelForo

Respuesta a consultas.
Fecha de creación: 09.Abril.2012

Fundadores: Wibly,Tyno,Servando,Sakkar,Rosendo2,RMaximo,Railar,Mcoronel,Ioyama,Igtelo,Hugotron,Drochar,Dedos,Alberto,Adolfo

No se pueden hacer consultas de Excel o VBA por mensaje privado.
Utiliza el botón buscar del foro y te ahorras tiempo para obtener "ayuda".

No estás conectado. Conéctate o registrate

Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje [Página 1 de 1.]

tyno


Saludos compañeros del foro.
A pedido de Adrian subo un archivo Excel habilitado para macros de ejemplo, donde se puede ver como combinar un cuadro de texto para buscar y filtrar datos  con un cuadro de lista. Una vez que hemos filtrado los datos en el cuadro de lista los podemos seleccionar para  registrar en un determinado rango.
Por otro lado, tanto el cuadro de texto como el cuadro de lista siempre serán visibles a la altura de la celda/celdas que hemos seleccionado para ingresar los datos.

Saludos
Archivos
Filtrar-Seleccionar datos en cuadro de lista.zip
No tienes los permisos para descargar los archivos.
(19 KB)

wibly


Excelente Tyno!, gracias

Un abrazo

Adrián

jhon1904


hola, tyno

gracias nuevamente pr su aporte es genial.


tengo una inquietud, se puede hacer que el buscador salga en una rango como por ejemplo de un rango("C2:e100") a la altura según de la celda seleccionada de este rango ?

saludos

gracias por el aporte

Dios lo bendiga

jhon

tyno


Hola Jhon.
Creo que se puede hacer lo que pides, habría que modificar las referencias en esta linea:

On Error Resume Next
If buscar <> "" Then
material.Clear
i = 1: x=0
nxt: rw = Range(Cells(i, 3), Cells(100, 5)).Find(buscar, lookat:=2).Row
If rw = i Then Exit Sub
material.AddItem
For a = 0 To 2
material.List(x, a) = Cells(rw, a + 3)
Next a
x = x + 1
i = rw
GoTo nxt
Else
material.Clear
End If

y también cambiar la propiedad ColumnCount del cuadro de lista "material" a 3 y establecer las medidas de las columnas en la propiedad ColumnWidths.

Saludos

jhon1904


hola, tyno

el codigo que enviastes es para que mostrar lo que hay en las tres celdas,

lo que te decia no se si pueda, es que si selecciona la celda c2 me apareciera el cuadro de filtro, o si me paro en la celda d50 me apareciera el cuadro de filtro a la misma altura de la celda seleccionada, hablando de un rango de c2:e100

saludos

jhon

tyno


Hola Jhon.
En ese caso hay que modificar esta parte:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
buscar.Visible = False
material.Visible = False
If Union(Target, [c2:e100]).Address = [c2:e100].Address Then
buscar = ""
material.Clear
buscar.Visible = True
material.Visible = True
buscar.Top = ActiveCell.Top
material.Top = ActiveCell.Offset(1, 0).Top
buscar.Left = ActiveCell.Offset(0, 1).Left
material.Left = ActiveCell.Offset(0, 1).Left
End If
End Sub

Saludos

Igtelo


Órale con el maestro MacroTyno!!!

Gracias por el aporte Tyno, muuuuy útil.

Saludos a todos
Ignacio Téllez

8 BUSQUEDA APARTIR DEL TERCER CARACTER el 16/01/15, 03:47 pm

cobainx59


MUY BUEN APORTE TYNO SINCERAMENTE APENAS ME ESTOY ADENTRANDO A LA CREACION DE MACROS Y CODIGO PARA MEJORAR EL MANEJO DE EXCEL, TU APORTE ME FUE DE MUCHA AYUDA.

SOLO TE QUERIA CONSULTAR SI SABRAS COMO HACER QUE LA BUSQUEDA AUTOMATICA INICIE APARTIR DEL TERCER CARACTER Y NO DEL PRIMERO YA QUE CUANDO MI LISTADO TIENE MUCHOS DATOS (13000 REGISTROS) EL PROGRAMA EXCEL SE ALENTA MI PC O PASMA EL EXCEL.

GRACIAS.

cobainx59


MI PREGUNTA ES COMO HACER QUE LA BUSQUEDA INICIE DESPUES DE LA TERCERA LETRA
EL CODIGO ES EL SIGUIENTE:



Private Sub buscar_Change()
On Error Resume Next
If buscar <> "" Then
material.Clear
i = 1
nxt: rw = Range(Cells(i, 1), Cells(1000000, 1)).Find(buscar, lookat:=2).Row
If rw = i Then Exit Sub
material.AddItem Cells(rw, 1)
i = rw
GoTo nxt
Else
material.Clear
End If

End Sub

Private Sub material_Click()
On Error Resume Next
Dim celda As Range
For Each celda In Selection
celda = material
Next
End Sub




Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
buscar.Visible = False
material.Visible = False
If Union(Target, [d2:d1000000]).Address = [d2:d1000000].Address Then
buscar = ""
material.Clear
buscar.Visible = True
material.Visible = True
buscar.Top = ActiveCell.Top
material.Top = ActiveCell.Offset(1, 0).Top

End If
End Sub

10 Excelente el 22/01/15, 02:16 am

S_magico


Muy bueno, andaba buscando al de filtrar un combobox, pero esto se ajusta perfectamente a lo que andaba buscando para mi hoja de calculo, Muchas gracias

saludos y excelente lol!

S_magico


Hola, me gusto mucho este aporte, pero mi pregunta es como tendria que modificarse el codigo para cargar y filtra los datos del listbox, si estos estuvieran en la Hoja 2, por ejemplos, Gracias

vidmar


Hola,

yo tambien estoy interesado en como se debe hacer, para que el rango en el que busca el ListBox, apunte a otra hoja.

Gracias!!!

Igtelo


Hola Sres.

Aquí va para cuando están en otra hoja los datos.

En los códigos encuentran breve explicación de los mismos. Apóyense en la ayuda de Excel para VBA, les dejo enlace para que lo vean y estudien.

http://www.universoexcelforo.com/t1461-encontrar-ayuda-en-vba-p-nuestras-macros-videotutorial

Cobainx, se puede hacer lo que pides, pero no te ayudará en nada, tu máquina tarda porque son muchos registros, recuerda que depende mucho de la capacidad de tu procesador y RAM y si tienes varias aplicaciones o programas abiertos pues menos...

Saludos
Ignacio Téllez
Archivos
Filtrar-seleccionar datos2 en listbox .zip
No tienes los permisos para descargar los archivos.
(27 KB)

14 Muchas gracias Igtelo el 09/07/15, 01:23 pm

vidmar


Muchas gracias Igtelo

No daba con la tecla, y despues de revisar tu código he visto mi fallo.

"nxt: rw = Sheets("Datos").Range(Sheets("Datos").Cells(i, 1), _
Sheets("Datos").Cells(1000000, 1)).Find(buscar, lookat:=2).Row"

Y yo hacia.

"nxt: rw = Sheets("Datos").Range(Cells(i, 1), Cells(1000000, 1)).Find(buscar, lookat:=2).Row"

Pensaba que con dejar claro en la primera parte de la sentencia que el rango pertenece a otra hoja, era suficiente.

Gracias por el aporte!

Saludos,

Igtelo


Hola Vidmar.

Bien!! Apóyate en la ayuda, estudia: With, Set y podrás hacerlo más corto.
Ya te toca a ti buscarle.

Saludos
Ignacio Téllez
P.d: ¿No dabas con la tecla, cual tecla?

16 AYUDA LISTBOX el 14/07/16, 11:41 am

MarcosJM


NECESITO AYUDA DE COMO POBLAR UN LISTBOX CON LOS DATOS DE UNA TABLA Y LUEGO APLICARLE FILTRO A LOS DATOS DEL LISTBOX

tyno


Hola Marcos bien venido.
Si tu pedido no se relaciona con el aporte de este tema entonces abre un nuevo tema con tu consulta y el archivo de ejemplo, explicando que es lo que necesitas.Lee las normas del foro. Gracias

Saludos

Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

Permisos de este foro:
No puedes responder a temas en este foro.