Jump to content
paratortu

macro para filtro de fechas y VBA

Recommended Posts

Buenas tardes,

a ver si soy capaz de explicarlo bien....

tengo una tabla de ventas, con articulo, marca, fecha, importe, etc etc... he hecho una tabla dinamica donde veo por marcas los importes totales de dichas ventas. En la pestaña de filtro puse "fecha" pero no me sirve ahí ya que tengo que hacer muchas consultas por fechas, meses, trimestres y demás... por lo que ir seleccionando día a día es poco práctico para ir viendo diferentes trimestres :(

Total, en esa tabla dinámica, en las filas, he puesto "marca" y "fecha", ya que ahí si puedo usar filtro de fecha e ir viendo las fechas que me interesen, pero claro... sucede a la vez que lo que quiero ver no es la fecha, sino la marca, así que la fecha lo pongo como 2º campo de la tabla dinámica en FILAS.

He creado una macro, donde en filtro de fecha selecciono un rango de fechas.... esta es la macro:

Sub filtrofecha()
'
' filtrofecha Macro
'

'
ActiveSheet.PivotTables("Tabla dinámica1").PivotFields("Fecha"). _
ClearLabelFilters
ActiveSheet.PivotTables("Tabla dinámica1").PivotFields("Fecha").PivotFilters. _
Add2 Type:=xlDateBetween, Value1:="01/01/18", Value2:="31/01/18"
End Sub


Mi pregunta, lo que necesito... he pensado poner una fecha (value1) en una celda, inicio del rango de la consulta y en otra celda la fecha fin. Se que se usa para ello Range("B1") pero poniendo esto me da error. 

Add2 Type:=xlDateBetween, Value1:="Range("B1")", Value2:="Range("B2")"

He probado con las comillas y sin comillas, pero me da error y no me funciona.

¿Cómo podría hacerlo?

Espero haber sabido explicarlo bien.

 

Luego lo que hice fue crear dos variables para fecha, y que señalen a la celda donde está escrita a mano la fecha, pero me sigue dando error...

Sub filtrofecha()
'
' filtrofecha Macro
'
Dim vbfecha1, vbfecha2 As Date

vbfecha1 = Range("D1")
vbfecha2 = Range("D2")

'
    ActiveSheet.PivotTables("Tabla dinámica1").PivotFields("Fecha"). _
        ClearLabelFilters
    ActiveSheet.PivotTables("Tabla dinámica1").PivotFields("Fecha").PivotFilters. _
        Add2 Type:=xlDateBetween, Value1:=vbfecha1, Value2:=vbfecha2
End Sub
 



Muchas gracias a todos por vuestro tiempo.

Un saludo

Share this post


Link to post
Share on other sites

Hola:

Cámbialo por lo siguiente:

Dim vbfecha1 As String, vbfecha2 As String

vbfecha1 = Range("D1")
vbfecha2 = Range("D2")

Saludos

Abraham Valencia

PD: Ojo, en VBA al declarar las variables así estén en la misma línea debes definir el tipo de cada una

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.



×
×
  • Create New...

Important Information

Privacy Policy