Filtro que se detiene

10/08/2005 - 01:05 por José A. Castrejón | Informe spam
Buenas Tardes, estoy haciendo un autofiltro, y necesito que el criterio de
filtrado lo tome de una celda.
A B
1
2
3 FACTURA FECHA
1 07-Jul-05
y asi suscesivamente

Yo quiero poner una fecha en la celda a1 por ej. 3-Ago-05

Dim Fecha
Fecha = Cells(1, 3)
Range("A4").Select
Selection.AutoFilter
Selection.AutoFilter Field:=4, Criteria1:=Fecha

Al parecer el filtro funciona pero no despliega la lista.
Cuando veo la hoja la flecha de la columna filtrada esta en azul si la abro
tiene seleccionado "personalizado" y la fecha esta en otro formato :
Una vez filtrado deseo copiar los datos filtrados a otra Hoja
Gracias

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
10/08/2005 - 02:53 | Informe spam
hola, José !

... haciendo un autofiltro... necesito que el criterio de filtrado lo tome de una celda.
A B
1
2
3 FACTURA FECHA
1 07-Jul-05 ... y asi suscesivamente
... quiero poner una fecha en la celda a1 por ej. 3-Ago-05
Dim Fecha
Fecha = Cells(1, 3)
Range("A4").Select
Selection.AutoFilter
Selection.AutoFilter Field:=4, Criteria1:=Fecha
... el filtro funciona pero no despliega la lista... la flecha de la columna filtrada esta en azul
... tiene seleccionado "personalizado" y la fecha esta en otro formato [...]



1) la macro esta 'tomando' la fecha de la celda 'C1'... NO de 'A1' como pones el ejemplo -?-
->Fecha = Cells(1, 3)<-
2) la macro esta 'autofiltrando' en la columna 4 ['D' ?]
->Selection.AutoFilter Field:=4,...<-
y [aparentemente] la columna de las fechas esta en el campo/columna 2 [o... 'B2' ?]

-> si modificas estas variables en el codigo a los datos 'reales' de la hoja de calculo... que pasa ?

comentas?
saludos,
hector.
Respuesta Responder a este mensaje
#2 José A. Castrejón
10/08/2005 - 18:55 | Informe spam
Ok, creo que equivoque las celdas al escribirlas aqui

A B C D

1 25-Jul-05 tecleado 25/7/05 formato dd-mmm-aa
2
3
4 No. Proveedor Factura Fecha
5 1 Prov1 1529 25-Jul-05
6 2 Prov2 1569 03-Ago-05
7 3 Prov3 1530 25-Ago-05

Codigo

Dim fecha
fecha = Cells(1, 2)
'
Range("A4").Select
Selection.AutoFilter
Selection.AutoFilter Field:=4, Criteria1:=fecha

Cuando ejecuto el macro, se pone al autofiltro, y se esconden todos los
datos, la flecha del campo 4(Fecha) aparece en azul, si hago click sobre ella
aparece marcado "(Personalizar).." y dice la personalizacion 7/25/2005 !!!
Y no está desplegado ningun dato, lo que desea es que segun la tecla que sea
introducida en la celda B1, se tome como el criterio de filtrado en el campo
fecha.

"Héctor Miguel" escribió:

hola, José !

> ... haciendo un autofiltro... necesito que el criterio de filtrado lo tome de una celda.
> A B
> 1
> 2
> 3 FACTURA FECHA
> 1 07-Jul-05 ... y asi suscesivamente
> ... quiero poner una fecha en la celda a1 por ej. 3-Ago-05
> Dim Fecha
> Fecha = Cells(1, 3)
> Range("A4").Select
> Selection.AutoFilter
> Selection.AutoFilter Field:=4, Criteria1:=Fecha
> ... el filtro funciona pero no despliega la lista... la flecha de la columna filtrada esta en azul
> ... tiene seleccionado "personalizado" y la fecha esta en otro formato [...]

1) la macro esta 'tomando' la fecha de la celda 'C1'... NO de 'A1' como pones el ejemplo -?-
->Fecha = Cells(1, 3)<-
2) la macro esta 'autofiltrando' en la columna 4 ['D' ?]
->Selection.AutoFilter Field:=4,...<-
y [aparentemente] la columna de las fechas esta en el campo/columna 2 [o... 'B2' ?]

-> si modificas estas variables en el codigo a los datos 'reales' de la hoja de calculo... que pasa ?

comentas?
saludos,
hector.



Respuesta Responder a este mensaje
#3 José A. Castrejón
10/08/2005 - 20:03 | Informe spam
Mira cambie lo siguiente y parece que funciona, ahora lo que pasa es que el
filtro queda seleccionado en la fecha, pero no se despliega
La flecha del campo filtrado queda en azul, si hago click en ella, está
seleccionada la fecha que puse en la celda b, pero no estan desplegados los
registros (que si existen). curiosamente si pongo la fecha 25-Jul-05 funciona
pero si tecleao 01-Ago-05, no se despliega !!!!!!!!!!!!!, he probado con
algunas fechas y hay algunas en donde si se despliegan los datos, pero otras
no¿Qué puede estar mal ?
La fecha que deseo sea el filtro ahorita para estas pruebas la puse an A1
Fecha = Format(Range("a1"), "dd-mmm-yy")
'
Range("A4").Select
Selection.AutoFilter

Selection.AutoFilter Field:=4, Criteria1:="=" & Fecha


Range("A2").Select






"Héctor Miguel" escribió:

hola, José !

> ... haciendo un autofiltro... necesito que el criterio de filtrado lo tome de una celda.
> A B
> 1
> 2
> 3 FACTURA FECHA
> 1 07-Jul-05 ... y asi suscesivamente
> ... quiero poner una fecha en la celda a1 por ej. 3-Ago-05
> Dim Fecha
> Fecha = Cells(1, 3)
> Range("A4").Select
> Selection.AutoFilter
> Selection.AutoFilter Field:=4, Criteria1:=Fecha
> ... el filtro funciona pero no despliega la lista... la flecha de la columna filtrada esta en azul
> ... tiene seleccionado "personalizado" y la fecha esta en otro formato [...]

1) la macro esta 'tomando' la fecha de la celda 'C1'... NO de 'A1' como pones el ejemplo -?-
->Fecha = Cells(1, 3)<-
2) la macro esta 'autofiltrando' en la columna 4 ['D' ?]
->Selection.AutoFilter Field:=4,...<-
y [aparentemente] la columna de las fechas esta en el campo/columna 2 [o... 'B2' ?]

-> si modificas estas variables en el codigo a los datos 'reales' de la hoja de calculo... que pasa ?

comentas?
saludos,
hector.



Respuesta Responder a este mensaje
#4 Héctor Miguel
11/08/2005 - 00:17 | Informe spam
hola, José !

... cambie lo siguiente y parece que funciona
... ahora lo que pasa es que el filtro queda seleccionado en la fecha, pero no se despliega
... curiosamente si pongo la fecha 25-Jul-05 funciona pero si tecleao 01-Ago-05, no se despliega !
he probado con algunas fechas y hay algunas en donde si se despliegan los datos, pero otras no...



supongo que se trata de 'diferencias' en los formatos de fecha entre la lista, 'la celda, y el criterio en la macro :))
1) SI TODOS los datos referentes a fechas SON datos_fecha [independientemente del 'formato de visualizacion']
a) la variable Fecha declarala como tipo 'Date'
b) asignala 'en directo' desde la celda correspondiente
c) 'pasala -tambien- en directo' como criterio del autofiltro p.e.
[... otras lineas de tu codigo ...]
Dim Fecha As Date
Fecha = Cells(1, 2)
Range("a4").Select
Selection.AutoFilter
Selection.AutoFilter Field:=4, Criteria1:=Fecha

[... otras lineas de tu codigo ...]
2) SI TODOS los datos referentes a fechas SON fechas_texto...
a) la variable Fecha declarala como tipo 'String'
b) asignala 'convertida' desde la celda correspondiente [suponiendo que en esa celda hay un DATO_FECHA]
c) 'pasala -tambien- en directo' como criterio del autofiltro p.e.
[... otras lineas de tu codigo ...]
Dim Fecha As String
Fecha = Format(Cells(1, 2), "dd-mmm-yy")
Range("a4").Select
Selection.AutoFilter
Selection.AutoFilter Field:=4, Criteria1:=Fecha

[... otras lineas de tu codigo ...]
3) SI se trata de referencias a fechas con datos 'mezclados' [unas dato_fecha... otras fecha_texto... etc.]
habria que encontrar la combinacion adecuda en el codigo -?-

si cualquier duda... comentas?
saludos,
hector.
Respuesta Responder a este mensaje
#5 José A. Castrejón
11/08/2005 - 01:09 | Informe spam
Gracias por tu codigo, ya lo habia puesto de estas 2 formas, y pasa lo mismo
el filtro se queda seleccionado en azul, y si lo abres esta seleccionada la
fecha requerida, pero los datos no se despliegan, es como si faltara un
"ENTER" o un "CLICK". En fin creo que es un problema de formatos, pues si yo
tecleo
1/1/05 me pone en la celda 01/01/2005. si dejo la fecha requerida en el
formato que pone excel y cambio mis datos de fecha a este formato lo hace bien
entonces lo que estoy haciendo es que primero cambio los formatos, hago el
filtro y regreso a los formatos ...ahora no se como copiar solo los
datos filtrados es decir solo la columna de fecha a otra hoja. Como le digo a
excel que se posicione en el primer registro visible y seleccione hasta el
ultimo ?
probe con este codigo de Contextures.com pero me copia todas las columnas,
no entiendo muy bien la parte de offset y resize

Sub CopyFilter()
'by Tom Ogilvy
Dim rng As Range
Dim rng2 As Range

With ActiveSheet.AutoFilter.Range
On Error Resume Next
Set rng2 = .Offset(1, 0).Resize(.Rows.Count - 1, 1) _
.SpecialCells(xlCellTypeVisible)
On Error GoTo 0
End With
If rng2 Is Nothing Then
MsgBox "No data to copy"
Else
Worksheets("Sheet2").Cells.Clear
Set rng = ActiveSheet.AutoFilter.Range
rng.Offset(1, 0).Resize(rng.Rows.Count - 1).Copy _
Destination:=Worksheets("Sheet2").Range("A1")
End If
ActiveSheet.ShowAllData

End Sub


Sdos y gracias una vez mas


"Héctor Miguel" escribió:

hola, José !

> ... cambie lo siguiente y parece que funciona
> ... ahora lo que pasa es que el filtro queda seleccionado en la fecha, pero no se despliega
> ... curiosamente si pongo la fecha 25-Jul-05 funciona pero si tecleao 01-Ago-05, no se despliega !
> he probado con algunas fechas y hay algunas en donde si se despliegan los datos, pero otras no...

supongo que se trata de 'diferencias' en los formatos de fecha entre la lista, 'la celda, y el criterio en la macro :))
1) SI TODOS los datos referentes a fechas SON datos_fecha [independientemente del 'formato de visualizacion']
a) la variable Fecha declarala como tipo 'Date'
b) asignala 'en directo' desde la celda correspondiente
c) 'pasala -tambien- en directo' como criterio del autofiltro p.e.
[... otras lineas de tu codigo ...]
Dim Fecha As Date
Fecha = Cells(1, 2)
Range("a4").Select
Selection.AutoFilter
Selection.AutoFilter Field:=4, Criteria1:=Fecha

[... otras lineas de tu codigo ...]
2) SI TODOS los datos referentes a fechas SON fechas_texto...
a) la variable Fecha declarala como tipo 'String'
b) asignala 'convertida' desde la celda correspondiente [suponiendo que en esa celda hay un DATO_FECHA]
c) 'pasala -tambien- en directo' como criterio del autofiltro p.e.
[... otras lineas de tu codigo ...]
Dim Fecha As String
Fecha = Format(Cells(1, 2), "dd-mmm-yy")
Range("a4").Select
Selection.AutoFilter
Selection.AutoFilter Field:=4, Criteria1:=Fecha

[... otras lineas de tu codigo ...]
3) SI se trata de referencias a fechas con datos 'mezclados' [unas dato_fecha... otras fecha_texto... etc.]
habria que encontrar la combinacion adecuda en el codigo -?-

si cualquier duda... comentas?
saludos,
hector.



Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida