Hola @RubenDario
Faltaría que en cada línea dentro del With le pongas un punto al inicio
With Hoja1
.Range("B6:B18,F6:F18,J6:J18").Select
.Range("J6").Activate
With Selection.Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
.Selection.ClearContents
.Range("A1").Select
End With
Sin embargo, lo que yo haría (si fuese mi proyecto)... te ofrezco varias soluciones.
No asignarlo a una combinación de teclas, mejor ponerlo en una forma o botón.
Modificar tu libro con la app Custom UI Editor o similar y adicionar un botón en el Ribbon, estará visible solo cuando el libro esté activo.
Al principio de tu código pondría algo como: If Thisworkbook.Name <> ActiveWorkbook.Name Then Exit sub
Por
DiegoPC, · 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