Visual Basic para Aplicaciones - autofiltro personalizado no funciona vba

Life is soft - evento anual de software empresarial
 
Vista:

autofiltro personalizado no funciona vba

Publicado por Pedro (1 intervención) el 26/05/2020 00:52:48
Buenas, tengo un problemilla curioso, estoy configurando un autofiltro para una macro pero el criteria1 es una variable...."fechaExport"

Total que la macro se ejecuta, se marca el autofiltro personalizado pero no filtra, lo curioso es que si "en paso a paso" me meto en el filtro, éste está creado con el valor correcto y si le doy a aceptar manualmente filtra..... pero si lo hace la macro per se. no hace el filtrado.... Gracias de antemano si me podéis echar un cable... os dejo el codigo:


1
2
3
4
5
6
7
8
9
10
Range("a1").Select
Selection.AutoFilter
ActiveSheet.Range("$A$1:$S$155").AutoFilter _
    Field:=4, _
    Criteria1:=">" & fechaExport
 
Rows("2:2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Delete Shift:=xlUp
Selection.AutoFilter
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 1.134
Oro
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

autofiltro personalizado no funciona vba

Publicado por Antoni Masana (498 intervenciones) el 26/05/2020 09:27:58
Este es uno de los fallos o bugs que tiene el Excel.
Creas un autofiltro, lo grabas en macro y la macro no funciona.
Y el problema es como excel trata las fechas internamente y como las presenta, resulta que cuando graba la macro te la pone en el formato que la presenta y no en el formato interno.

Para Excel hoy 26 de mayo de 2020 internamente es el número 43977. Para hacer el filtra la variable fechaExort tiene que se tipo Date. Y te funcionada.

Prueba este pequeño ejemplo:

1
2
3
4
5
6
7
8
9
Sub macro()
    Dim FechaExport As Date
 
    FechaExport = 43977
    MsgBox "Preba 1:  " & FechaExport
 
    FechaExport = "24/05/2020"
    MsgBox "Preba 2:  " & FechaExport + 2
End Sub

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar