filtro en un formulario vba excel
TRANSCRIPT
7/24/2019 Filtro en Un Formulario VBA Excel
http://slidepdf.com/reader/full/filtro-en-un-formulario-vba-excel 1/7
Filtro en un Formulario VBAExcelOtra vez,
Estoy en la parte de filtrar información de la base de datos... Les cuento un poco como
funciona el programita que estoy haciendo para que entiendan por que quiero filtrar de esta
forma. Los usuarios que usen el programa no pueden ver las hojas de Excel ya que al ejecutar
Excel, el Workbook se esconde y solo se ven los formularios, nadie mas que yo puede ver el
workbook, a menos que sepa la contraseña de Administrador.
Por esa razón es que quiero agregar un filtro en uno de los formulario y que me muestre los
resultados en ese mismo formulario a través de un ListBox o incluso en un MsgBox si es
posible. Pero no tengo ni la mas mínima idea de que código usar.
Les dejo unas imágenes de lo que tengo, una es de la base de datos y la otra es del formulario
como me gustaría que quedara.
Base de
datos:
(esto por si no se
ve):
7/24/2019 Filtro en Un Formulario VBA Excel
http://slidepdf.com/reader/full/filtro-en-un-formulario-vba-excel 2/7
o
esta:
7/24/2019 Filtro en Un Formulario VBA Excel
http://slidepdf.com/reader/full/filtro-en-un-formulario-vba-excel 3/7
Formulario:
(si ese link no sirve prueben
este):
o
7/24/2019 Filtro en Un Formulario VBA Excel
http://slidepdf.com/reader/full/filtro-en-un-formulario-vba-excel 4/7
este:
Bueno si se fijan en la base de datos hay una columna que tiene numero de Agencia y en el
formulario se va a filtrar por el numero de agencia, use el ejemplo de la agencia 124, lo que
quiero es que al seleccionar 124 en el Combo Box y presionar el botón Search Now se
muestren todas las lineas que contienen 124 en el ListBox de la derecha.
PD: Si es posible también filtrar por la fecha, la que dice Outbound, a través de un textbox
donde se escribiría
Seguir Responder Más info
Compartir
1 respuesta
Respuesta de Dante Amor
1
Dante Amor, Se fue un gran Padre. Te amo Papá!
Lo reviso y con gusto te respondo.
Saludos. Dam
el 6 nov. 12
Pon el siguiente código en tu formulario
7/24/2019 Filtro en Un Formulario VBA Excel
http://slidepdf.com/reader/full/filtro-en-un-formulario-vba-excel 5/7
Revisa y cambia en el código lo siguiente:
1. El nombre de tu hoja, en el ejemplo yo le puse "base"
2. Las columnas de datos, en el ejemplo yo le puse de A1 a D1 (4 columnas: outbound,
inbound, agency, members)
3. Si son más de 4 columnas tienes que cambiar
ListBox1.ColumnCount = 4
4. Y agregar, más líneas
.List(.ListCount - 1, 3) = cell.Offset(0, 3).Value
5. Tienes que crear un textbox1 para capturar la fecha
6. Tienes que verificar que lo que capturan en el textbox1 sea una fecha (no se incluye en esta
macro)
Private Sub CommandButton1_Click()
'Por Dam
Dim cell A !an"e
Dim !n" A !an"e
a"encia # ComboBox1
$ec%a # &extBox1
ActiveS%eetAutoFilterode # Fale
!an"e(A1*D1)Select
+$ a"encia # &%en
+$ $ec%a # &%en
"Box ,o %a- dato a .ltrar/ e eleccionan todo
ComboBox1SetFocu
Ele
'Filtra dato 0or $ec%a
ActiveS%eetAutoFilterode # Fale
!an"e(A1*D1)Select
SelectionAutoFilter
SelectionAutoFilter Field*#1/ Criteria1*#$ec%a
End +$
Ele
+$ $ec%a # &%en
7/24/2019 Filtro en Un Formulario VBA Excel
http://slidepdf.com/reader/full/filtro-en-un-formulario-vba-excel 6/7
'Filtra dato 0or a"encia
ActiveS%eetAutoFilterode # Fale
!an"e(A1*D1)Select
SelectionAutoFilter
SelectionAutoFilter Field*#/ Criteria1*#a"encia
Ele
'.ltra dato 0or a"encia - $ec%a
ActiveS%eetAutoFilterode # Fale
!an"e(A1*D1)Select
SelectionAutoFilter
SelectionAutoFilter Field*#1/ Criteria1*#$ec%a
SelectionAutoFilter Field*#/ Criteria1*#a"encia
End +$
End +$
u.la # !an"e(A 2 !o3Count)End(xl40)!o3
+$ u.la # 1 &%en
"Box ,o e encontraron dato a .ltrar
5itBox1Clear
Ele
'Pre0ara el ran"o de dato .ltrao
6it% &%i6orkbook6ork%eet(bae)
'Set !n" # !an"e(A1/ !an"e(A1)End(xlDo3n))S0ecialCell(xlCell&-0eViible)
Set !n" # !an"e(A1/ !an"e(A 2!o3Count)End(xl40))S0ecialCell(xlCell&-0eViible)
End 6it%
'Pre0ara - llena el litobox
5itBox1ColumnCount # 7
5itBox1Clear
For Eac% cell +n !n"Cell
6it% e5itBox1
Add+tem cellValue
5it(5itCount 8 1/ 1) # cell9:et(;/ 1)Value
5it(5itCount 8 1/ <) # cell9:et(;/ <)Value
7/24/2019 Filtro en Un Formulario VBA Excel
http://slidepdf.com/reader/full/filtro-en-un-formulario-vba-excel 7/7
5it(5itCount 8 1/ ) # cell9:et(;/ )Value
End 6it%
,ext cell
$ec%a #
a"encia #
End +$
End Sub
Saludos.dam
Si es lo que necesitas.
el 7 nov. 12
Mejor imposible, esta perfecto no se interpretar ese código tan grande pero lo copie y lo pegue
y funciono a la perfección jajaja solo tuve que cambiar el nombre de la hoja como me dijiste
arriba
Gracias, eres un Dios
Ya se donde buscar ayuda siempre, nunca fallas wow
Saludos