Hola de nuevo,
Dando una vuelta al tema, he interpretado que quizá la solución que buscabas era otra. Si lo que buscabas era aflorar el concepto 'folio' partiendo del resto de variables, quizá el archivo adjunto te dé una idea de cómo abordar la solución.
He corregido algunos importes, para confirmar que la asignación recoja los resultados más probables.
Saludos,
Base 05 (C).xlsx
Por
Victor7, · publicado
Hola a todos,
Antes de nada os felicito por facilitarnos a todos nuestras jornadas con excel.
Os comento mi problema:
Quiero conseguir filtrar de una columna entre una fecha con su hora y
otra fecha con su hora.
Para esto he optado, tras consultar por muchas paginas, por
transformar la fecha en formato long y la hora en formato double,
esto mismo es lo que le paso a la funcion Autofilter en su campo
"criteria" y se supone que tendria que funcionar.
Tras ejecutar el código el resultado está vacio. Investigando en el
propio excel, depurando, para ver que es lo que ha filtrado (me voy a
filtrado entre fechas y veo que hay escrito) y aparece que le falta
la "coma" en el valor numerico.
No se a que puede ser debido, sabrías si es necesario actualizar las
referencias para poder trabajar correctamente con autofilter?
Muchisimas gracias por vuestra ayuda!
Incluyo el codigo en cuestion:
Sub Filtrar_entre_fechas()
Dim Dayfilter As Date
Dim Dayfilter2 As Date
Dim Shift1 As Date
Dim Shift2 As Date
Dim lFecha1 As Long, lFecha2 As Long
Dim dtime1 As Double, ddtime2 As Double
Dim ddatetime1 As Double
Dim ddatetime2 As Double
Dim prueba1 As String
Dim prueba2 As String
Dayfilter = "11/12/2012"
Dayfilter2 = "12/12/2012"
Shift1 = "7:00"
Shift2 = "15:00"
Range("R1") = Dayfilter
Range("R2") = Dayfilter2
Range("R3") = Shift1
Range("R4") = Shift2
lFecha1 = Range("R1")
lFecha2 = Range("R2")
dtime1 = Range("R3")
dtime2 = Range("R4")
ddatetime1 = lFecha1 + dtime1
ddatetime2 = lFecha2 + dtime2
prueba1 = Mid(dtime1, 2)
prueba2 = Mid(dtime2, 2)
With ActiveSheet
If .AutoFilterMode = True Then .AutoFilterMode = False
End With
Cells.Select
Selection.AutoFilter
ActiveSheet.Range("$A$1:$E$1903").AutoFilter Field:=1, Criteria1:="MicroparoB1100"
'ActiveSheet.Range("$A$1:$E$1903").AutoFilter Field:=2, Criteria1:=">=" & ddatetime1, Operator:=xlAnd, Criteria2:="<=" & ddatetime2
ActiveSheet.Range("$A$1:$E$1903").AutoFilter Field:=2, Criteria1:=">=" & lFecha1 & prueba1, Operator:=xlAnd, Criteria2:="<=" & lFecha2 & prueba2
End Sub