Generar gráfico con rango variable

Buenas
Quisiera que me ayudara con un pequeño inconveniente que tengo.
Quisiera saber si es posible generar una macro para la creación de un gráfico, a la cual no le tenga que especificar el rango, sino darle el valor de la celda inicial y que ella busque el ultimo valor que se halla ingresado.
Por ejemplo, tengo 20 datos en la columna B y en la columna C hay una fórmula que hace un calculo con los datos dela fila B, el rango seria entonces ("B1:C20"). La cuestión es que si se agregan por decir 5 datos más el rango cambiaría, ahora seria ("B1:C25") y así sucesivamente cambiaría a medida que se agreguen más datos. Entonces hacer que la macro busque el ultimo valor y grafique los datos.
Agradecería mucho su ayuda. Ya aprendí a crear un gráfico con una macro (pero tengo que especificar el rango), insertar el gráfico en un userform y actualizarlo según sea lo que quiero que aparezca.
Espero que me pueda ayudar
Respuesta
1
El nuevo rango lo puedes definir con rows. Count, osea
a = Cells(1, 2).CurrentRegion.Rows.Count
Charts("Gráfico1").SetSourceData Source:=Range("Hoja1!B1:C" & a)
Estoy intentando poner a funcionar el código, pero me aparece que se ha producito el error '9' en tiempo de ejecución, y que el subíndice esta fuera del intervalo.
Inicie el procedimiento en una hoja nueva, pero no se, hay que primero generar algún comando para dar origen al gráfico o algo así. Por favor se un poco más didáctico conmigo es que apenas estoy comenzando a utilizar esta parte del ayudante de visual basic con excel
Si, esas lineas de código funcionan desde la hoja en la que tienes los datos que quieres graficar, la primera celda del contenido de datos en este caso es B1 y el número de la última fila la obtiene con CurrentRegion. Rows. Count y la asigna a la variable "a" la cual concateno con "Hoja1!B1:C" para obtener el rango completo iniciando en B1.
Para que esta macro funcione deberás generar un gráfico, el nombre del gráfico que generes se lo cambiarás por "Gráfico1", puedes cambiar el rango en Range("Hoja1!B1:C"&a) o la celda inicial en a=Cells(1,2)... siendo, Cells(fila, columna), te colocas en la hoja en la cual tienes los datos a graficar y corres la macro.
Si no te queda claro enviame un correo con el archivo en el cual trabajas y te lo regreso con la linea en donde pudiera quedar y funcionando.
[email protected]

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas