Gráfico en Macro Excel

Buenos días,
tengo una macro que importa datos de un txt para luego darlos cierto formato de tabla. Ahora estoy haciendo gráficos y em encuentro con el problema de que no se como poner en el ActiveChart.SetSourceData un origen de celdas discontinuo.
Me explico, quiero sacar un gráfico de ventas totales por articulo. Los artículos los tengo en la primera fila y los totales de ventas los tengo en la última fila (esta depende del numero de clientes). Consigo hacer gráficos siempre que el rango seleccionado sea continuo pero en este caso no se como "unir" los dos rangos de datos.
Un saludo y gracias por adelantado,
David

1 respuesta

Respuesta
1
Me puedes poner el código que esta usando en esta macro para revisarlo y mirar que puedo hacer, seria mejor que me envíes el archivo al correo [email protected] bien descrito y con mucho gusto le colaboro ya que a si es más fácil y no tengo que improvisar tanto.
Que tenga un feliz día.
Perdón por no explicame bien.
El excel lo tengo enlazado con otro fichero que lo genero desde otra aplicación así que es un poco complicado enviártelo para que funcione todo el "sistema". Te detallo un poco más mi problema y te copio el código.
Tengo una tabla y en la 2º fila tengo descripciones de artículos (está fila siempre es la 2º, nunca se mueve pero si que puede tener diferente número de artículos (columnas)), después tengo varias filas con detalle (no es un número fijo de filas, depende del número de clientes que hayan comprado) y en la última línea tengo totalizados.
Yo para hacer el gráfico que necesito seleccionaría"manualmente" las celdas de la fila 2 y las de la fila de totalizados y sacaría el gráfico. Mi problema es que con el código que tengo en el Range solo consigo pasarle un rango de datos continuo, no sé como pasarle dos filas que no están juntas. Tengo en variables los datos de las celdas en las que necesito posicionarme.
'Charts.Add
    'ActiveChart.ChartType = xlPie
    'ActiveChart.SetSourceData Source:=Sheets("Datos").Range(¡¡¡Aquí es donde tengo el problema!!!!).Select, _
        PlotBy:=xlRows
    'ActiveChart.Location Where:=xlLocationAsNewSheet, Name:="Artículos"
    'With ActiveChart
     '   .HasTitle = True
     '   .ChartTitle.Characters.Text = "Artículos"
    'End With
Espero haberme explicado mejor. Saludos y muchas gracias por tu tiempo.
Bueno prueba con lo siguiente
'Charts.Add 
    'ActiveChart.ChartType = xlPie 
    'ActiveChart.SetSourceData Source:=Sheets("Datos").Range("A2:C2,A5:C5").Select, _ 
        PlotBy:=xlRows 
    'ActiveChart.Location Where:=xlLocationAsNewSheet, Name:="Artículos" 
    'With ActiveChart 
     '   .HasTitle = True 
     '   .ChartTitle.Characters.Text = "Artículos" 
    'End With
Entonces despejando tenemos:
A2:C2=fila donde esta la descripción de los artículos, la cual puede ser más amplia en columnas
A5:C5=fila donde están los totales, la cual puede ser más amplia en columnas
Los datos anteriores son como ejemplo para ilustrar como debe quedar el rango especifcado, para que al ejecutar el código le seleccione rangos matriciales, es decir 2 rangos diferentes los cuales cada uno es continuo, recuerde que ud debe remplazar esos datos de acuerdo a su proyecto.
Espero que le sea de utilidad mi ayuda, recuerde que cualquier cosa me puede consultar nuevamente, por favor NO OLVIDAR PUNTUAR Y FINALIZAR LA PREGUNTA, que tenga un feliz día!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas