Colocar grafico

03/04/2006 - 16:12 por carmen | Informe spam
Hola!
Tengo una macro que realiza varios calculos y con los resultados me
genera tres graficos. La idea es que el usuario final solo tenga que
apretar un boton y obtenga toda la informacion impresa, asi que pongo
todos mis resultadillos en una hoja, y los imprimo, pero no se colocar
los graficos donde yo quiero, creo que

Worksheets("Hoja 1").ChartObjects("Grafico 1").Top = _
Worksheets("Hoja 1").Rows(2).Top

deberia funcionar, pero no se cambiarle el nombre a mis graficos!!!!!
Es decir, que cada vez que ejecuto, tengo un nuevo grafico con nombres
sucesivos...Que hago?
Alguien me puede echar una mano?

Muchas gracias!!!!

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
04/04/2006 - 02:28 | Informe spam
hola, carmen !

... una macro... genera tres graficos.
La idea es que el usuario final solo tenga queapretar un boton y obtenga toda la informacion impresa
... pero no se colocar los graficos donde yo quiero, creo que
Worksheets("Hoja 1").ChartObjects("Grafico 1").Top = _
Worksheets("Hoja 1").Rows(2).Top
deberia funcionar, pero no se cambiarle el nombre a mis graficos!!!!!
Es decir, que cada vez que ejecuto, tengo un nuevo grafico con nombres sucesivos. Que hago?



considerando que excel 'asigna' los nombres a los objetos incrustados EN el idioma en que esta instalado...
[y para -tratar de- evitar un embrollo en andar 'cachando' cada objeto y asignandole un nombre 'controlado']...
prueba a adaptar/modificar/corregir/... dos ejemplos que te expongo al final del presente ;)
considerando que podria haber otro numero de 'eventualidades' [como el numero de graficos 'generados']...
los ejemplos usan el indice [o cuenta] de graficos incrustados en la hoja1 ;)

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
=op1: suponiendo que deseas iniciar en la fila 2 con 'saltos' a cada 8 filas [o las que decidas]...
Sub Graficos_en_cascada()
Dim Sig As Byte
With Worksheets("hoja1")
For Sig = 1 To .ChartObjects.Count
.ChartObjects(Sig).Top = .Rows(2 + (Sig - 1) * 8).Top
.ChartObjects(Sig).Left = .ChartObjects(1).Left
Next
End With
End Sub

op2: suponiendo que deseas que los graficos se acomoden cada uno debajo del anterior...
Sub Graficos_ordenados()
Dim Sig As Byte
With Worksheets("hoja1")
.ChartObjects(1).Top = .Rows(2).Top
For Sig = 2 To .ChartObjects.Count
.ChartObjects(Sig).Top = _
.ChartObjects(Sig - 1).Top + .ChartObjects(Sig - 1).Height
.ChartObjects(Sig).Left = .ChartObjects(1).Left
Next
End With
End Sub
Respuesta Responder a este mensaje
#2 carmen
06/04/2006 - 10:34 | Informe spam
Muchas gracias Hector Miguel, son un lujo tus respuestas, hasta puedes
elegir!!!! ha funcionado muy bien, aunque ahora se me presenta otro
problema:

tengo los datos para crear un grafico en una hoja ("Data") pero quiero
"pegarlo" en otra distinta ("Berechnung"). Este codigo no se da por
enterado y me lo coloca en la hoja "Data", la misma de la que saco los
datos...

Worksheets("Data").ChartObjects("DiagrammSektorklasse").Top = _
Worksheets("Berechnung").Rows(34).Top

Me puedes echar una mano?
Respuesta Responder a este mensaje
#3 Héctor Miguel
06/04/2006 - 12:21 | Informe spam
hola, carmen !

... ahora se me presenta otro problema:
tengo los datos para crear un grafico en una hoja ("Data") pero quiero "pegarlo" en otra distinta ("Berechnung").
Este codigo no se da por enterado y me lo coloca en la hoja "Data", la misma de la que saco los datos...
Worksheets("Data").ChartObjects("DiagrammSektorklasse").Top = _
Worksheets("Berechnung").Rows(34).Top



el 'detalle' esta en que [probablemente] el grafico fue 'creado' [originalmente] EN la hoja 'data' -?- [entonces]...
dado que los objetos incrustados 'guardan' su posicion en 'puntos de documento'...
y esta medida se relaciona con la 'distancia' desde los extremos superior e izquierdo del 'contenedor' [o sea: la hoja]...
primero... 'deberas' moverlo a la hoja 'berechnung' y despues... re-ubicarlo en alguna celda de la fila 34 :)) [p.e.]

Worksheets("Data").ChartObjects("DiagrammSektorklasse") _
.Chart.Location xlLocationAsObject, "Berechnung"
Worksheets("Berechnung").ChartObjects("DiagrammSektorklasse") _
.Top = Worksheets("Berechnung").Range("c34").Top

si cualquier duda [o informacion adicional]... comenas ?
saludos,
hector.
Respuesta Responder a este mensaje
#4 carmen
06/04/2006 - 16:10 | Informe spam
Muchas muchas gracias, ha funcionado perfectamente!!!!
Hasta pronto (supongo,jejejeje),
Carmen
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida