Nilton

25/09/2008 - 19:37 por Nilton Cesar Mejia Manrique | Informe spam
Holas:

Si alguien me puede ayudar, quisiera lograr manejar un filtrado de nivel 4
por medio de combos; tengo una hoja (Datos2), la cual contiene Departamentos,
provincias, distritos y capital. lo que quiero es filtrar en escalera de
acuerdo al orden que le presente.

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
25/09/2008 - 22:32 | Informe spam
hola, Nilton !

Si alguien me puede ayudar, quisiera lograr manejar un filtrado de nivel 4 por medio de combos
tengo una hoja (Datos2), la cual contiene Departamentos, provincias, distritos y capital.
lo que quiero es filtrar en escalera de acuerdo al orden que le presente.



no se que pudiera significar un "filtrado de nivel 4" -?-
tampoco el significado de "filtrar en escalera" -?-

ya probaste con los autfiltros y/o los filtros avanzados y no te ha funcionado ?

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#2 Nilton Cesar Mejia Manrique
25/09/2008 - 23:49 | Informe spam
Hola Hector:
gracias por la preocupación:
Te esplico, tengo cuatro columnas, estoy realizando un formulario, y me
trabe en indicar la dirección.

Departamentos Provinicas Distritos Capitales

Con un control combobox1 desearía selecionar un departamento determinado y
este me filtre sus Provincias mostrandome dischas provincias en un control
combobox2, al seleccionar una provincia determinada me filtre los distritos
de esa Provincia y me muestre en el combobox3 los Distritos que pertenescan a
la Provincia selecionada, y asi hasta llegar a Capitales. total distritos
1826.

Agradecer tu sugerencia y/o apoyo.
Respuesta Responder a este mensaje
#3 Héctor Miguel
26/09/2008 - 05:32 | Informe spam
hola, Nilton !

... tengo cuatro columnas, estoy realizando un formulario, y me trabe en indicar la direccion.
Departamentos Provinicas Distritos Capitales
Con un control combobox1 desearia selecionar un departamento determinado y este me filtre sus Provincias
mostrandome dischas provincias en un control combobox2
al seleccionar una provincia determinada me filtre los distritos de esa Provincia
y me muestre en el combobox3 los Distritos que pertenescan a la Provincia selecionada
y asi hasta llegar a Capitales. total distritos 1826.



hay dos o tres detalles que he tenido que suponer... (p.e.)
- la hoja (Datos2) solo tiene datos en las columnas A:D (OJO: el resto estan libres y las utiliza el codigo)
- los combos, llevan un "patron" y una secuencia numerica en el nombre (ComboBox1=Departamentos... ComboBox4=Capitales)
(no importa como inicie el nombre ComboBox, Cotrol, Listado, ... etc. solo que termine en 1, 2, 3 y 4)

copia/pega (o escribe) los siguientes procedimientos en el modulo de codigo de tu formulario...

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

Dim Cargando As Boolean
Private Sub UserForm_Initialize()
Cargando = True
With Worksheets("datos2")
.Range("h1:k1").Value = .Range("a1:d1").Value
.Range("h4:k4").Value = .Range("a1:d1").Value
.Range("a1").CurrentRegion.Resize(, 1).AdvancedFilter _
Action:=xlFilterCopy, CopyToRange:=.Range("f1"), Unique:=True
.Columns("f").Sort Key1:=.Range("f1"), Order1:=xlAscending, Header:=True
ComboBox1.List = .Range(.Range("f2"), .Range("f2").End(xlDown)).Value
End With
Cargando = False
End Sub
Private Sub UserForm_Terminate()
With Worksheets("datos2")
.Columns("f:k").Clear
Debug.Print .UsedRange.Address
End With
End Sub
Private Sub ComboBox1_Change()
AutoFiltra Val(Right(ActiveControl.Name, 1))
End Sub
Private Sub ComboBox2_Change()
AutoFiltra Val(Right(ActiveControl.Name, 1))
End Sub
Private Sub ComboBox3_Change()
AutoFiltra Val(Right(ActiveControl.Name, 1))
End Sub
Private Sub AutoFiltra(n As Byte)
If Cargando Then Exit Sub Else Dim Col As Byte
For Col = n + 1 To 4: Controls("combobox" & Col).Clear: Next
With Worksheets("datos2")
.Range("h2").Offset(, n - 1) = Controls("combobox" & n)
.Range("h2").Offset(, n).Resize(, 4 - n).ClearContents
.Range("a1").CurrentRegion.AdvancedFilter _
Action:=xlFilterCopy, CriteriaRange:=.Range("h1:k2"), _
CopyToRange:=.Range("h4:k4")
With .Range("h4").CurrentRegion
For Col = n + 1 To 4
If .Rows.Count > 2 Then
Controls("combobox" & Col).List = _
.Offset(1, Col - 1).Resize(.Rows.Count - 1, 1).Value
Else
Controls("combobox" & Col).AddItem .Cells(2, Col)
End If
Next
End With
End With
End Sub
Respuesta Responder a este mensaje
#4 Ivan
26/09/2008 - 21:41 | Informe spam
:-D

Private Sub AutoFiltra(n As Byte)



End Sub



muy bueno, ¡¡ pa la saca !! :-)))

un saludo
Ivan
Respuesta Responder a este mensaje
#5 Nilton Cesar Mejia Manrique
27/09/2008 - 01:01 | Informe spam
Héctor:

Ok, lo voy a revisar y ejecutar. gracias
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida