Visual Basic - “Variable de objeto o bloque with no establecido” en código para actualizar gráfico

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 1
Ha disminuido su posición en 79 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

“Variable de objeto o bloque with no establecido” en código para actualizar gráfico

Publicado por Agustín (3 intervenciones) el 02/03/2020 02:03:26
Necesito hacer una macro que actualice un gráfico con datos de una tabla. Lo raro es que estoy copiando y adaptando un código que funciona en otro excel, pero a mi me tira este error. Esta es la macro completa:

1
2
3
4
5
6
7
8
9
10
11
12
Sub grafico1()
Application.Workbooks("Tabla.xlsm").Sheets("Tabla").Activate
Dim Final As Integer
Final = Sheets("Tabla").Range("A2").End(xlDown).Row
Sheets("Gráfico 1").Select
ActiveChart.SeriesCollection(1).XValues = "=Tabla!R2C3:R" & Final & "C3" (acá tira el error)
ActiveChart.SeriesCollection(1).Values = "=Tabla!R2C7:R" & Final & "C7"
With ActiveChart.Axes(xlCategory)
    .MinimumScale = Sheets("Tabla").Range("C2").Value
    .MaximumScale = Sheets("Tabla").Range("C" & Final).Value
End With
End Sub

Buscando en internet encontré que tiene que ver con la variable Final y que tendría que ponerle Set antes de Final=, pero si hago eso me tira el error de que se requiere un objeto y me remarca *Final =*

Estuve buscando como solucionarlo y no encuentro la forma, soy nuevo en esto y es para un trabajo de la facultad. Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 1.259
Plata
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

“Variable de objeto o bloque with no establecido” en código para actualizar gráfico

Publicado por Antoni Masana (558 intervenciones) el 02/03/2020 15:56:40
¿Que valor devuelve esto: sheets("Tabla").Range("A2").End(xlDown).Row?

Quizás ese sea el problema y tienes más de 32768 filas.

Cambia:
1
Dim Final As Integer
por
1
Dim Final As Long

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

“Variable de objeto o bloque with no establecido” en código para actualizar gráfico

Publicado por Agustín (3 intervenciones) el 02/03/2020 17:52:08
Por lo que entiendo al tener el .Row devuelve el valor de la fila, o no? Hay alguna forma de ver que devuelve? Las filas son 19. Cambiando integer por long no cambia nada, sigue tirando el mismo error.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

“Variable de objeto o bloque with no establecido” en código para actualizar gráfico

Publicado por Agustín (3 intervenciones) el 02/03/2020 19:18:40
Cambie un poco algunas cosas, fui probando, y me quede acá donde me tira el siguiente error: No coindicen los tipos
La macro quedó así después del Select:

1
2
3
4
5
6
7
8
9
10
11
12
13
ActiveChart.SeriesCollection(1).XValues = _
 Worksheets("Tabla").Range("C2:C19")
 
ActiveChart.SeriesCollection(1).Values = _
 Worksheets("Tabla").Range("G2:G19")
 
 
With ActiveChart.Axes(xlCategory)
    .MinimumScale = Sheets("Tabla").Range("C2").Value (acá tira el error)
    .MaximumScale = Sheets("Tabla").Range("C" & Final).Value
End With
 
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar