Me aparece un mensaje de error "error 1004 al obtener la propiedad PivotTable de la clase Worksheet"

Esto es debido a que generé una macro para que cuando los datos cambien de valor(los valores que cambian están en dos celdas diferentes), en automático se actualice la tabla dinámica, cuando lo hago desde la hoja en donde se encuentra la TD no me arroja ningún error, el error viene cuando los datos cambian desde otra hoja que se encuentra en el mismo libro xk están vinculadas, entonces si me aparece el error mencionado. La realidad es que no se que hacer para evitar que aparezca este error porque al final si finalizo manualmente este error no pasa nada, pero es molesto ver que aparece cada que cambio un dato y bueno eso es a cada rato.Espero alguien pueda ayudarme a solucionar este problema. Saludos

El código que tengo es el siguiente:

Private Sub Worksheet_Calculate()
Dim vtas_old As Double

Dim vtas_new As Double

vtas_new = Sheets("Brands").Range("AE5").Value

vtas_old = Sheets("Brands").Range("AE6").Value

If vtas_old <> vtas_new Then

[AE6] = vtas_new

ActiveSheet.PivotTables("TDBrand").PivotCache.Refresh

End If

End Sub

1 Respuesta

Respuesta

Quizás ya lo tengas resuelto pero no está demás responderla y así aprovecho para comentarte otro tema.

El tema del error es porque estás en otra hoja y hacés referencia a 'ActiveSheet. PivotTable'... claro, en la hoja activa no hay ninguna TDBrand y salta el error.

En casos así debes realizar alguna de estas acciones:

O mencionar el nombre de la hoja que tiene la tabla din en lugar de 'ActiveSheet'

o controlar un posible error colocando antes de la llamada a Pivot.... esta instrucción: On error Resume Next

0 ejecutar el evento Calculate solo en la hoja donde debe actualizarse la TablaDin:

Private Sub Worksheet_Calculate()
If ActiveSheet.Name <> "Brands" Then Exit Sub
'y a partir de aquí tus instrucciones

PD) El foro ahora permite que el usuario reciba más de 1 respuesta para un mismo problema (1 solución con fórmulas, otra con macros u otra con algún truco). Pero el usuario en ese caso debiera ser justo y valorar o finalizar a todos, en especial al 1er experto que se ha tomado el tiempo en resolver tu caso. 

Menciono esto y tomalo por favor solo como una sugerencia de buena onda, por la consulta que te ha respondido LuisMondelo acerca de las listas dependientes y nos hemos 'metido' otros 2 a continuación. La respuesta de Luis es totalmente correcta y merece también su valoración, ¿no te parece?

Gracias!

Sdos

Elsa

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas