filtro en un formulario vba excel

7
Filtro en un Formulario VBA Excel O t ra ve z, E st oy e n l a p a rt e d e l tr a r in f o rmaci ón d e l a b a se de d at o s... L es cu e n t o u n p o co co m o f un ciona el pr o g r a mi t a q u e es t oy h a ci e n d o pa ra qu e enti e n d a n p o r q u e q u i e ro l t r a r de e sta f o r m a. Lo s usuari os q ue use n el pr og r am a n o p ue de n ve r las hojas d e E xcel ya q u e a l ej ec ut ar E xcel , el Wor kb oo k se e sco nd e y so lo se ven los for m ularios, nadie m as q ue yo p uede ver el w or kbo ok, a m en os q ue sep a l a co ntr ase ñade A dm ini st r ad or. P or esa raz ón es quequier o a greg a r un l tr o e n uno de l os f orm ul ari o y q uem e m ue st r e l os resul t ad os e n e se m i sm o form u lario a t r avé s d e u n L ist B ox oi nc luso en u n M sg B ox si es po sible. P er o n o t en go ni l a m as míni m a i de a de que digousar. Le s d ej o un as i m ág enes de l o q ue t en go , un a e s d e l a b as e d e d atos y l a otr a e s d el f o rm ul ari o com o m e gust arí a que que dar a. B ase de datos: ( e st o p o r si n o se ve ):

Upload: felixdavidleiva6520

Post on 20-Feb-2018

224 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Filtro en Un Formulario VBA Excel

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):

Page 2: Filtro en Un Formulario VBA Excel

7/24/2019 Filtro en Un Formulario VBA Excel

http://slidepdf.com/reader/full/filtro-en-un-formulario-vba-excel 2/7

o

esta:

Page 3: Filtro en Un Formulario VBA Excel

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

Page 4: Filtro en Un Formulario VBA Excel

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

Page 5: Filtro en Un Formulario VBA Excel

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

Page 6: Filtro en Un Formulario VBA Excel

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

Page 7: Filtro en Un Formulario VBA Excel

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