Pregunta sobre Autofilter

14/03/2005 - 19:41 por Luis Rentería | Informe spam
Buenas tardes!

Necesito saber la manera en que puedo validar si al aplicar un filtro con el
método autofilter, existe al menos un renglón con datos válidos, o bien,
saber cómo detecto que no hay datos para los filtros aplicados.

Saludos.

:)

Preguntas similare

Leer las respuestas

#1 varela_b
14/03/2005 - 20:28 | Informe spam
Luis Rentería wrote:

Buenas tardes!

Necesito saber la manera en que puedo validar si al aplicar un filtro con el
método autofilter, existe al menos un renglón con datos válidos, o bien,
saber cómo detecto que no hay datos para los filtros aplicados.

Saludos.



No se si ya intentastes primero ordenar tu hoja por el campo que deseas
validar y despues aplicar el autofiltro, eso te dira primero si tienes
datos en blanco, despues tendrías que hacer una busqueda para el valor
deseado y si existe ese valor buscado entonces realizar el autofiltro.
Respuesta Responder a este mensaje
#2 Héctor Miguel
15/03/2005 - 08:31 | Informe spam
hola, Luis !

... validar si al aplicar un filtro... existe al menos un renglon con datos validos
... o... saber como detecto que no hay datos para los filtros aplicados.



prueba con los siguientes codigos y... si cualquier duda... comentas?
saludos,
hector.

-> si ya aplicaste un autofiltro y quieres saber cuantas filas quedaron 'cumpliendo' con el criterio...
podrias contar las celdas visibles del primer campo/columna del rango al que se aplica el autofiltro
With ActiveSheet.AutoFilter.Range.Columns(1)
MsgBox .SpecialCells(xlCellTypeVisible).Count - 1
End With

-> si quisieras 'consultar ANTES' para aplicar [o no] un autofiltro a un rango...
Sub ValidarParaFiltrar()
Dim Hoja As String, Campo As Byte, Criterio As String, ColFiltro As String, Tantas As Long
Hoja = "Hoja1"
Campo = 3 '1
Criterio = ">250" '"=*d"
With Worksheets(Hoja).AutoFilter.Range
ColFiltro = .Columns(Campo).Address
If Application.CountIf(Range(ColFiltro), Criterio) > 0 Then
.AutoFilter Field:=Campo, Criteria1:=Criterio
Tantas = .Columns(1).SpecialCells(xlCellTypeVisible).Count - 1
MsgBox "Existen " & Tantas & " filas que ""cumplen"" con el criterio."
Else
MsgBox "No existen datos con el criterio solicitado !!!"
End If
End With
End Sub
Respuesta Responder a este mensaje
#3 Luis Rentería
16/03/2005 - 16:43 | Informe spam
Gracias por los tips.

Lo resolví usando el código siguiente, después de aplicar los filtros
necesarios.

Selection.AutoFilter Field:=1, Criteria1:="X"
Selection.AutoFilter Field:=2, Criteria1:="Y"

'Después de aplicar los filtros, el cursor se coloca por default en A1 y
aplico entonces lo siguiente:

ActiveCell.SpecialCells(xlLastCell).Select

If ActiveCell.Row > 1 Then

'Si existe algún dato que satisfaga el criterio, ocupará el renglón
2 (o más)
'y ejecuto el código restante.

Else

´De lo contrario, regreso los filtros al dato general.
Selection.AutoFilter Field:=1
Selection.AutoFilter Field:=2

End if

Saludos.


"Héctor Miguel" wrote in message
news:
hola, Luis !

... validar si al aplicar un filtro... existe al menos un renglon con
datos validos
... o... saber como detecto que no hay datos para los filtros aplicados.



prueba con los siguientes codigos y... si cualquier duda... comentas?
saludos,
hector.

-> si ya aplicaste un autofiltro y quieres saber cuantas filas quedaron
'cumpliendo' con el criterio...
podrias contar las celdas visibles del primer campo/columna del rango
al que se aplica el autofiltro
With ActiveSheet.AutoFilter.Range.Columns(1)
MsgBox .SpecialCells(xlCellTypeVisible).Count - 1
End With

-> si quisieras 'consultar ANTES' para aplicar [o no] un autofiltro a un
rango...
Sub ValidarParaFiltrar()
Dim Hoja As String, Campo As Byte, Criterio As String, ColFiltro As
String, Tantas As Long
Hoja = "Hoja1"
Campo = 3 '1
Criterio = ">250" '"=*d"
With Worksheets(Hoja).AutoFilter.Range
ColFiltro = .Columns(Campo).Address
If Application.CountIf(Range(ColFiltro), Criterio) > 0 Then
.AutoFilter Field:=Campo, Criteria1:=Criterio
Tantas = .Columns(1).SpecialCells(xlCellTypeVisible).Count - 1
MsgBox "Existen " & Tantas & " filas que ""cumplen"" con el
criterio."
Else
MsgBox "No existen datos con el criterio solicitado !!!"
End If
End With
End Sub

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida