[RESUELTO] Anclar un gráfico a una celda.
[RESUELTO] Anclar un gráfico a una celda.
Hola a todos.
Estoy intentando crear un gráfico basado en una hoja de cálculo Calc mediante macros y no he sido capaz de anclarlo a una celda.
¿Alguien que sepa cómo hacerlo?
Gracias
Estoy intentando crear un gráfico basado en una hoja de cálculo Calc mediante macros y no he sido capaz de anclarlo a una celda.
¿Alguien que sepa cómo hacerlo?
Gracias
Última edición por pppardo el Mar Mar 13, 2018 9:10 am, editado 2 veces en total.
Pepe Pardo
Open Office 4.1.3
Windows 7
Open Office 4.1.3
Windows 7
Re: Anclar un gráfico a una celda.
Un gráfico es un elemento gráfico más de la hoja, usa la propiedad Anchor, requiere una celda como valor:
Tienes mucho información por acá:
https://wiki.openoffice.org/wiki/ES/Man ... osGraficos
Saludos
Código: Seleccionar todo
obj = ThisComponent.CurrentController.Selection.getByIndex(0)
cell = ThisComponent.getCurrentController.getActiveSheet.getCellRangeByName("A1")
obj.Anchor = cell
https://wiki.openoffice.org/wiki/ES/Man ... osGraficos
Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Re: Anclar un gráfico a una celda.
Al decir gráfico quería decir Chart. Es decir diagramas estadísticos. De tarta, de barras etc. Eso vale también?
Pepe Pardo
Open Office 4.1.3
Windows 7
Open Office 4.1.3
Windows 7
Re: Anclar un gráfico a una celda.
Reitero, un gráfico es un elemento más, ¿ya probaste?
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Re: Anclar un gráfico a una celda.
En cuanto llegue a casa lo pruebo.
Gracias.
Gracias.
Pepe Pardo
Open Office 4.1.3
Windows 7
Open Office 4.1.3
Windows 7
Re: Anclar un gráfico a una celda.
Vale, funciona. Mi problema ahora es que no tengo seleccionado nada. Tengo el objeto Chart pero no tengo el Shape. ¿Como puedo obtenerlo?
Código: Seleccionar todo
oChart = thisComponent.Sheets(0).getCharts().getByName("Object 1")
oShape = ??
Pepe Pardo
Open Office 4.1.3
Windows 7
Open Office 4.1.3
Windows 7
Re: Anclar un gráfico a una celda.
Si insertas el gráfico por macros, debes de tener tanto el Chart como el Shape, pero... "así sin ver", es difícil ayudarles...
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Re: Anclar un gráfico a una celda.
Sería tal que así:
Código: Seleccionar todo
Sub GeneraDiagrama()
Dim sName
Dim oAddress
Dim oCharts
sName = "Diagrama"
oAddress = thisComponent.Sheets(0).getCellRangeByName("A2:C10").getRangeAddress()
oCharts = thisComponent.Sheets(0).getCharts()
If NOT oCharts.hasByName(sName) Then
oRect = createObject("com.sun.star.awt.Rectangle")
oRect.X = 1000
oRect.Y = 1000
oRect.width = 10000
oRect.Height= 5000
oCharts.addNewByName(sName, oRect, Array(oAddress), False, True)
End If
End Sub
Pepe Pardo
Open Office 4.1.3
Windows 7
Open Office 4.1.3
Windows 7
Re: Anclar un gráfico a una celda.
No sé si te he entendido al 100%, dices:
Saludos.
Por ejemplo mover el grafico a la celda E1:Anclar un gráfico a una celda.
Saludos.
- Adjuntos
-
- anclarGrafico (2).ods
- Gráfico
- (14.7 KiB) Descargado 156 veces
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Re: Anclar un gráfico a una celda.
Gracias por responder.
Lo que has mandado lo que hace es establecer el gráfico en la misma posición que una celda pero no lo vincula. Con el anclaje (Botón derecho sobre el gráfico, Ancla, Al a celda) lo que hace es que se mueve con la celda. Se amplio las celdas el gráfico también se mueve.
He solucionado el problema a lo bruto. Buscando en todos los Shapes y mirando si se corresponde con el Chart.
Lo que has mandado lo que hace es establecer el gráfico en la misma posición que una celda pero no lo vincula. Con el anclaje (Botón derecho sobre el gráfico, Ancla, Al a celda) lo que hace es que se mueve con la celda. Se amplio las celdas el gráfico también se mueve.
He solucionado el problema a lo bruto. Buscando en todos los Shapes y mirando si se corresponde con el Chart.
Código: Seleccionar todo
Sub anchorChart(oChart, oCelda) As Object
oModelo = oChart.getEmbeddedObject()
dP=thisComponent.Sheets(0).getDrawPage()
cuenta = dP.count
for i=0 to cuenta-1
oPage = dP(i)
If oPage.supportsService("com.sun.star.drawing.OLE2Shape") Then
if EqualUnoObjects(oPage.Model, oModelo) then
oPage.Anchor=oCelda
Exit For
End If
End if
next
End Function
Pepe Pardo
Open Office 4.1.3
Windows 7
Open Office 4.1.3
Windows 7
Re: Anclar un gráfico a una celda.
ummmm yo realmente al final no entendí.
Aquí un ejemplo de como anclar un gráfico a una celda con la macro que primeramente subiste.
Saludos.
Aquí un ejemplo de como anclar un gráfico a una celda con la macro que primeramente subiste.
Saludos.
- Adjuntos
-
- anclarGrafico.ods
- Anclar gráfico.
- (14.67 KiB) Descargado 155 veces
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!