Error 1004 en tiempo de ejecución en macro excel

Tengo esta sentencia en una macro

Sub derecha()
ActiveSheet.ChartObjects("Gráfico 3").Activate

n = Range("AS110").Value
m = Range("AS111").Value
Select Case n

Case 1

ActiveChart.SetSourceData Source:=Range("Hoja5!$AH$4:$AH$" & m & ",Hoja5!$AI$4:$AI$" & m)
Case 2
ActiveChart.SetSourceData Source:=Range("Hoja5!$AH$4:$AH$" & m & ",Hoja5!$AJ$4:$AJ" & m)
Case 3

Una pequeña descripción: en Hoja5, tengo una tabla donde en la columna AH están las fechas por meses, en la columnas siguientes hacia la derecha están los valores que se quieren graficar, las variables "n" indican el numero de columna que se va moviendo con un botón de control de numero, la variable m se ingresa en la celda AS111 y indica la ultima fila con con datos de la tabla.

Me estaba corriendo bien, pero ahora me sale este mensaje:

"Se ha producido error 1004 en tiempo de ejecución, Error en método range de objeto_ Global. Y hace referencia a toda la linea de la sentencia en donde me encuentre pe ejemplo si el boton control de numero indica 2, me colorea la fila que he puesto en negrita.

¿Me esta sacando de quicio este error podrían ayudarme?

1 Respuesta

Respuesta
1

Revisa que en la celda Range("AS111").Value tengas un número, revisa que efectivamente sea un número, puede ser que tengas un texto, o puede ser que la celda está vacía. Borra el contenido de la celda, revisa que el formato de celda sea General o Número, escribe un número. Vuelve a probar.

.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

.

Avísame cualquier duda

Lo acabo de hacer, nada,sigue el mismo error

Envíame tu archivo para revisarlo.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “andres avelino” y el título de esta pregunta.

Dante, Te lo acabo de enviar 

Supongo que le cambiaste el nombre a la hoja, antes se llamaba "Hoja5", ahora se llama "TABLA"

Prueba con esto.

Case 1
    ActiveChart.SetSourceData Source:=Range("TABLA!$AH$4:$AH$" & m & ",TABLA!$AI$4:$AI$" & m)
Case 2
    ActiveChart.SetSourceData Source:=Range("TABLA!$AH$4:$AH$" & m & ",TABLA!$AJ$4:$AJ" & m)

O regresa el nombre de la hoja a "Hoja5" y funciona así:

Case 1
    ActiveChart.SetSourceData Source:=Range("Hoja5!$AH$4:$AH$" & m & ",Hoja5!$AI$4:$AI$" & m)
Case 2
    ActiveChart.SetSourceData Source:=Range("Hoja5!$AH$4:$AH$" & m & ",Hoja5!$AJ$4:$AJ" & m)

Si quieres utilizar el nombre objeto de la hoja, entonces debería ser así:

Case 1
    ActiveChart.SetSourceData Source:=Range(Hoja5.Name & "!$AH$4:$AH$" & m & "," & Hoja5.Name & "!$AI$4:$AI$" & m)
Case 2
    ActiveChart.SetSourceData Source:=Range(Hoja5.Name & "!$AH$4:$AH$" & m & "," & Hoja5.Name & "!$AJ$4:$AJ$" & m)

En este caso no importa si llama "Hoja5" o "TABLA", siempre va a tomar el nombre objeto de la hoja, que en este caso es Hoja5.


.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

.

Avísame cualquier duda

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas