Visual Basic para Aplicaciones - error 5 argumento o llamada no validos

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 177
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

error 5 argumento o llamada no validos

Publicado por Albert (204 intervenciones) el 14/10/2021 11:40:38
Buenos días, he creado un modulo que genera un gráfico con unos datos que han de irse aumentando por año y no se que me ocurre pues me da error 5 en la celda1, creo que esta bien especificada
Adjunto una copia del excel para que podáis verlo, dentro del módulo explico lo que pasa en cada linea

Dim celda1 As Range
Dim celda2 As Range
Dim Rango As Range
Dim col&
col = Hoja2.Cells(4, Columns.Count).End(xlToLeft).Column + 1


Set celda1 = Hoja2.Cells("a4")
Set celda2 = Hoja2.Cells(col, 17)

Mil gracias de antemano
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.134
Oro
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

error 5 argumento o llamada no validos

Publicado por Antoni Masana (500 intervenciones) el 14/10/2021 15:47:55
Hay varias cosas que están mal.

En la primera línea los parámetros del Cells esta mal, ese es el formato del RANGE

1
2
Set celda1 = Hoja2.Cells("a4")
Set celda2 = Hoja2.Cells(col, 17)

En este caso los parámetros están mal, son variables y deben estar fuera de la comillas

1
2
Set Rango = wks.Range("celda1:celda2") ' MAL  - con esto pretendo que aumente columna
Set Rango = wks.Range(celda1 & ":" & celda2) ' BIEN - con esto pretendo que aumente columna

Las variables celda1 y celda2 están definidas como rango y no como númerica o string.

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
sin imagen de perfil
Val: 177
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

error 5 argumento o llamada no validos

Publicado por Albert (204 intervenciones) el 14/10/2021 18:04:00
Hola, Gracias por tu respuesta, pero sigue fallando algo
En la linea de celda2 sale error 1004 "error en el metodo range de objeto Worksheet"

Set celda2 = Hoja2.Range(col, 17)
Set celda2 = Hoja2.Range("col, 17")
con y sin comillas da el error
si la cambio por esta
Set celda2 = Hoja2.Range("M17")
entonces el error salta a esta linea

Set Rango = wks.Range(celda1 & ";" & celda2) aqui he probado con ":" y con ";"

de todos modos gracias por tu tiempo
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
sin imagen de perfil
Val: 177
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

error 5 argumento o llamada no validos

Publicado por Albert (204 intervenciones) el 15/10/2021 08:09:54
buenos dias, he probado esta formula

Set celda2 = "=hoja2.range!R[17]C[col]

y me da error de compilación
No coinciden los tipos

si cambio Dim Celda2 as Range por String
error "se requiere un objeto"
no se cual ponerle
En la pregunta inicial tenéis una copia del archivo

Gracias
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
sin imagen de perfil
Val: 177
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

error 5 argumento o llamada no validos

Publicado por Albert (204 intervenciones) el 15/10/2021 10:14:43
hola, le he quitado el "set" y ya no da error, pero sigue sin funcionar
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
Imágen de perfil de Antoni Masana
Val: 1.134
Oro
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

error 5 argumento o llamada no validos

Publicado por Antoni Masana (500 intervenciones) el 18/10/2021 20:16:12
Cuando haces esto estas haciendo mal varias cosas:

1
Set celda2 = Hoja2.Range(col, 17)

1º - Defines celda2 como objeto y quieres asignar un texto o un número.
2º - La instrucción SET es para asigna una referencia de objeto a una variable o propiedad.
3º - La instrucción Hoja2.Range(col, 17) devuelve un número o un texto, no un objeto
4º - No se que quieres que haga la macro.

Estas mezclado muchos conceptos y me hes difícil entender la macro si no se que tiene que hacer.

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
sin imagen de perfil
Val: 177
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

error 5 argumento o llamada no validos

Publicado por Albert (204 intervenciones) el 18/10/2021 20:58:08
Hola, gracias imagino que ya has visto el excel, se trata de añadir columnas normalmente una al año, en la aplicación original tengo una macro que genera la búsqueda por año y mes y la añade a la lista que es igual a la de esta muestra, de lo que se trata es de que al generar el gráfico en vez de coger de la columna B a la M en 2022 cuando esten los datos de 2021 coja de la B a la N y asi sucesivamente cada año

Gracias y disculpa por no haberme explicado bien
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
sin imagen de perfil
Val: 177
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

error 5 argumento o llamada no validos

Publicado por Albert (204 intervenciones) el 18/10/2021 22:21:12
Hola de nuevo, te adjunto una aplicación que es la que estoy usando como prueba en las paginas explico que es lo que ocurre y asi veras por que necesiti lo de la celda2, hay una formula que busca la ultima columna llena y le suma uno que es la primera vacia

Gracias por tu ayuda
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
Imágen de perfil de Antoni Masana
Val: 1.134
Oro
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

error 5 argumento o llamada no validos

Publicado por Antoni Masana (500 intervenciones) el 19/10/2021 20:55:56
El error que veo está en el momento de cambiar de hoja.
La rutina no busca el gráfico en el sitio adecuado, o lo que pretendes hacer esta mal, no se que es lo que quieres hacer aquí.

1
2
3
4
5
6
7
Private Sub Worksheet_Deactivate()
    If  ActiveSheet.ChartObjects.Activate  Is Nothing Then
        Hoja1.Activate
    Else
        Call Módulo5.BorrarChart
    End If
End Sub

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
sin imagen de perfil
Val: 177
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

error 5 argumento o llamada no validos

Publicado por Albert (204 intervenciones) el 20/10/2021 09:26:00
Buenos días, pues como tu dices al cerrar la hoja2 necesito que el gráfico este cerrado por que cuando vuelvas a entrar en ella se genera de nuevo, con esta formula pretendo que si el gráfico ya esta cerrado directamente abra la otra hoja, pero si no esta cerrado entonces se cierra, con el módulo" borrarchart" , lo tengo que hacer así por que si le digo que lo cierre y ya esta cerrado da error
Gracias
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