Para Hector Miguel Nuevamente

03/04/2007 - 13:13 por Jhorbam Baena Orozco | Informe spam
Hola Hector, mira asi aplique mi filtrado por VBA

'Selecciono la hoja de datos DATOS
Sheets("DATOS").Select

'Adiciono unas cuantas y las renombro
Sheets.Add
Sheets("Hoja1").Select
Sheets("Hoja1").Name = "GA1"

Sheets.Add
Sheets("Hoja2").Select
Sheets("Hoja2").Name = "GA2"

Sheets.Add
Sheets("Hoja3").Select
Sheets("Hoja3").Name = "GA3"

Sheets.Add
Sheets("Hoja4").Select
Sheets("Hoja4").Name = "GA4"

'Selecciono la hoja de datos DATOS
Sheets("DATOS").Select

'Aplico los filtrados a las columnas deseadas
Selection.AutoFilter Field:=1, Criteria1:="Gestión de Aplicaciones"
Selection.AutoFilter Field:=4, Criteria1:="BARRANCA"
Selection.AutoFilter Field:v, Criteria1:="1"

'PARA SELECCIONAR LOS TIPOS GA1
Selection.AutoFilter Field:x, Criteria1:="GA1"

'De aki para adelante aplique tu ejemplo


Gracias de nuevo
 

Leer las respuestas

#1 Héctor Miguel
04/04/2007 - 02:21 | Informe spam
hola, Jhorbam !

Hola Hector, mira asi aplique mi filtrado por VBA
[...]
Sheets("DATOS").Select
'Aplico los filtrados a las columnas deseadas
Selection.AutoFilter Field:=1, Criteria1:="Gestión de Aplicaciones"
Selection.AutoFilter Field:=4, Criteria1:="BARRANCA"
Selection.AutoFilter Field:v, Criteria1:="1"
'PARA SELECCIONAR LOS TIPOS GA1
Selection.AutoFilter Field:x, Criteria1:="GA1"
'De aki para adelante aplique tu ejemplo...



1) por si las dudas... copio/pego al final del presente la conversacion 'inicial' :))

2) cuando se aplican autofiltros, se 'generan' areas dis/continuas segun los valores que deban mostrarse por el criterio
si la primera 'area' contiene mas de una fila [obviamente] la primer 'celda/fila' donde se cumple el criterio es la fila 2
en caso contrario, se debe buscar la primer fila de la segunda 'area'

3) en el ejemplo de la propuesta, [yo] estaba 'asumiendo' que el rango de autofiltros se inicia desde la celda 'A1'
PERO... en este ejemplo de codigo que expones... no se 'aprecia' si efectivamente estamos hablando de 'A1' como inicio -???-
[de cualquier forma]... si cambias las siguientes instrucciones de la propuesta inicial...

If .Areas(1).Rows.Count > 1 _
Then MsgBox "Primer valor en... " & .Areas(1).Cells(2, 1).Address _
Else MsgBox "Primer valor en... " & .Areas(2).Cells(1, 1).Address

por las siguientes 'adaptaciones' [modifica si fuera necesario]...

If .Areas(1).Rows.Count > 1 _
Then MsgBox "Primer valor en... " & .Areas(1).Cells(2, 78).Address _
Else MsgBox "Primer valor en... " & .Areas(2).Cells(1, 78).Address

-> obtendras la direccion de la primer fila [columna 78] del area con autofiltros donde se cumplen todos los criterios

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

... debo programarle una macro...es una sabana inmensa de datos... lo mas sencillo seria filtrar las celdas con VBA
pero al hacerlo la primera celda de resultado por ejemplo no seria la A1 sino la A7890
como podria identificar la celda a traves de VBA, como en el caso anteriormente expuesto?...



'asumiendo' que 'A1' seria celda correspondiente a los titulos de la columna [por lo que no es 'de interes'] -?-
y que la macro que aplica los autofiltros ya la tienes definida -?-
el siguiente ejemplo te indica la celda donde aparece el primer valor que coincide con el criterio de los autfiltros:

Sub Filtrado_1()
With ActiveSheet
If Not .AutoFilterMode Then MsgBox "No hay rango con autofiltro !!!": Exit Sub
With .AutoFilter.Range.SpecialCells(xlCellTypeVisible)
If Not .Parent.FilterMode Then MsgBox "Filtros no activos !!!": Exit Sub
If .Areas(1).Rows.Count > 1 _
Then MsgBox "Primer valor en... " & .Areas(1).Cells(2, 1).Address _
Else MsgBox "Primer valor en... " & .Areas(2).Cells(1, 1).Address
End With
End With
End Sub

Preguntas similares