Error 438 al desactivar un gráfico

Tengo un problema VBA excel me da un error, os cuento:
En una hoja creo un gráfico al entrar en ella, y tengo un botón para borrarlo pero lo que quiero es que se borre al salir de esa hoja por si no lo he borrado, por que si no al volver a entrar crea uno distinto,
He intentado con el siguiente código por que si lo he borrado no puedo decirle que lo borre por que da error como tiene que ser, lo que intento es que la macro compruebe si esta activo, si esta activo lo borre y si no cambia de página pero me da error 438 " el objeto no admite esta propiedad o método"
Private Sub Worksheet_Deactivate()
If ActiveSheet.ChartObjects.Activate Is Nothing Then          En esta linea error
Hoja1.Activate
Else
Call Módulo5.BorrarChart
End If
End Sub

1 Respuesta

Respuesta
1

El primer error es porque al ejecutarse el evento Deactivate ya no estás en tu hoja del gráfico sino en la hoja a la que le diste el foco.

Por lo tanto lo más simple es decirle que elimine el objeto Gráfico indicando el nombre de la hoja.

Por ej:

Private Sub Worksheet_Deactivate()
On Error Resume Next
Sheets("Hoja2").ChartObjects(1).Delete
End Sub

El control de error evita que se detenga si la hoja (en este caso llamada 'Hoja2') ya no lo tiene.

Estoy considerando que solo habrá un objeto Chart por eso utilizo el valor 1.

PD) Te invito a mirar el video 47 de mi canal donde justamente muestro el evento Deactivate.

Sdos.

Elsa

https://www.youtube.com/c/ElsaMatilde 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas