Referencia a una celda dentro de un dibujo
Referencia a una celda dentro de un dibujo
Hola, en Excel puedo poner en un dibujo, por ejemplo, un cuadrado, una referencia a una celda, por ejemplro "=$A$1". Si en esa celda hay un texto, por ejemplo "Iniciar proceso", ese texto pasa a ser el texto del dibujo. De esta manera, de una lista de textos se pueden poner textos en distintos cuadrados. Si cambia el contenido en las celdas, cambia el contenido en los dibujos. ¿se puede hacer en Calc?
LibreOffice 7.5.2.2 en Windows 10
Re: Referencia a una celda dentro de un dibujo
Buen día,
La verdad es que no termino de entender tu pregunta, podrías subir un ejemplo o mínimo una captura de lo que quieres?
Te paso un ejemplo de lo que creo que tú quieres que encontré en el foro en inglés.
Al modificar el término en la celda D1, el gráfico cambia para mostrar la representación gráfica de la operación.
Si es esto lo que quieres, es fácil adaptarlo a lo que quieres, si no es esto, sube un ejemplo de lo que quieres.
La verdad es que no termino de entender tu pregunta, podrías subir un ejemplo o mínimo una captura de lo que quieres?
Te paso un ejemplo de lo que creo que tú quieres que encontré en el foro en inglés.
Al modificar el término en la celda D1, el gráfico cambia para mostrar la representación gráfica de la operación.
Si es esto lo que quieres, es fácil adaptarlo a lo que quieres, si no es esto, sube un ejemplo de lo que quieres.
- Adjuntos
-
- trigonometricScenarios.ods
- (96.89 KiB) Descargado 99 veces
LibreOffice 7.2.6.2 | Windows 7 Ultimate
Re: Referencia a una celda dentro de un dibujo
Hola Neftali R
¡Muchas gracias por tu respuesta!
Utilicé la palabra "dibujo" y he visto que Calc lo llama "Forma", al igual que Excel En esa planilla está el caso
Una forma cualquiera, en este caso un cuadrado, que contiene referencia a la celda A3. Por lo tanto, el texto en el cuadrado se actualiza al cambiar el contenido de la celda A3
Saludos cordiales, muchísimas gracias por tu tiempo
Rodolfo
¡Muchas gracias por tu respuesta!
Utilicé la palabra "dibujo" y he visto que Calc lo llama "Forma", al igual que Excel En esa planilla está el caso
Una forma cualquiera, en este caso un cuadrado, que contiene referencia a la celda A3. Por lo tanto, el texto en el cuadrado se actualiza al cambiar el contenido de la celda A3
Saludos cordiales, muchísimas gracias por tu tiempo
Rodolfo
LibreOffice 7.5.2.2 en Windows 10
Re: Referencia a una celda dentro de un dibujo
Hola,
Hasta donde yo sé no es posible cambiar el texto en ese tipo de objetos sin macros, un usuario más experimentado puede indicarte con seguridad si eso está implementado o no.
Pero no creo que sea algo difícil de hacer con macros, el problema sería que para modificarlo, agregar cuadros, celdas con texto, cambiar la ubicación de las celdas con el texto para cada objeto,etc, tendrías que revisar y modificar el código tú mismo y si no tienes experiencia con eso podría ser complicado o confuso.
Voy a hacer un macro que haga eso y ponerlo fácil para que sepas que hay que modificar.
Hasta donde yo sé no es posible cambiar el texto en ese tipo de objetos sin macros, un usuario más experimentado puede indicarte con seguridad si eso está implementado o no.
Pero no creo que sea algo difícil de hacer con macros, el problema sería que para modificarlo, agregar cuadros, celdas con texto, cambiar la ubicación de las celdas con el texto para cada objeto,etc, tendrías que revisar y modificar el código tú mismo y si no tienes experiencia con eso podría ser complicado o confuso.
Voy a hacer un macro que haga eso y ponerlo fácil para que sepas que hay que modificar.
LibreOffice 7.2.6.2 | Windows 7 Ultimate
Re: Referencia a una celda dentro de un dibujo
Buen día,
Aquí está el macro que puede hacer lo que solicitas.
Puedes colocar ese macro en el archivo que quieras que esa función esté disponible.
Una pequeña explicación para que puedas implementar el macro sin mayores problemas en tu archivo:
El macro funciona en la hoja que esté activa en el archivo, obtiene los datos de la hoja activa y modifica solo los dibujos de la hoja activa.
El orden en que el contenido de los dibujos será cambiado es el orden en el que los introdujiste al archivo. El dibujo 0 es el primer dibujo que introdujiste al archivo y según el macro, obtendrá el valor de la celda A1, el dibujo 4 es el quinto dibujo que introdujiste al archivo y obtendrá el valor de la celda A5 y así, puedes extender el rango todo lo que quieras, pero si hay más dibujos que celdas en el rango de mTexto, el macro dará error.
mTexto es el rango de celda de los que vendrán las cosas que se introducirán en los dibujos, puedes extenderlo o acortarlo sin problema, también puedes moverlo a otro lugar o usar columnas en lugar de filas(A1:F1 en lugar de A1:A5), sin embargo, esto último requerirá que modifiques también la novena linea del macro a "oTmp.setString(mTexto(0)(c))" en lugar de "oTmp.setString(mTexto(c)(0))".
Para que funcione continuamente el macro de forma automática, deberías ligarlo al suceso de hoja “Contenido cambiado”, eso lo puedes encontrar haciendo clic derecho en el nombre de la hoja en la parte inferior del interfaz, Sucesos de hoja>Contenido cambiado>Asignar Macro y seleccionas el macro que previamente debiste haber puesto en un módulo de macros de Basic.
Esto sin embargo tiene un inconveniente, si el archivo es usado y modificado constantemente, entonces ese macro hará que el archivo sea más lento, dependiendo de la pc, podría ser una diferencia imperceptible o algo evidente y molesto, si es una archivo que solo se usa para algunas cosas esporádicas, eso no debería ser un problema aunque sea evidentemente más lento.
Aquí está el macro que puede hacer lo que solicitas.
Código: Seleccionar todo
Sub Main
Dim oHoja, oDraw, oTmp As Object
Dim c As Integer, mTextos()
oHoja = ThisComponent.getCurrentController.getActiveSheet
mTexto = oHoja.getCellRangeByName("A1:A5").getDataArray
oDraw = oHoja.getDrawPage
For c = 0 to oDraw.Count - 1
oTmp = oDraw.getByIndex(c)
oTmp.setString(mTexto(c)(0))
Next
End Sub
Una pequeña explicación para que puedas implementar el macro sin mayores problemas en tu archivo:
El macro funciona en la hoja que esté activa en el archivo, obtiene los datos de la hoja activa y modifica solo los dibujos de la hoja activa.
El orden en que el contenido de los dibujos será cambiado es el orden en el que los introdujiste al archivo. El dibujo 0 es el primer dibujo que introdujiste al archivo y según el macro, obtendrá el valor de la celda A1, el dibujo 4 es el quinto dibujo que introdujiste al archivo y obtendrá el valor de la celda A5 y así, puedes extender el rango todo lo que quieras, pero si hay más dibujos que celdas en el rango de mTexto, el macro dará error.
mTexto es el rango de celda de los que vendrán las cosas que se introducirán en los dibujos, puedes extenderlo o acortarlo sin problema, también puedes moverlo a otro lugar o usar columnas en lugar de filas(A1:F1 en lugar de A1:A5), sin embargo, esto último requerirá que modifiques también la novena linea del macro a "oTmp.setString(mTexto(0)(c))" en lugar de "oTmp.setString(mTexto(c)(0))".
Para que funcione continuamente el macro de forma automática, deberías ligarlo al suceso de hoja “Contenido cambiado”, eso lo puedes encontrar haciendo clic derecho en el nombre de la hoja en la parte inferior del interfaz, Sucesos de hoja>Contenido cambiado>Asignar Macro y seleccionas el macro que previamente debiste haber puesto en un módulo de macros de Basic.
Esto sin embargo tiene un inconveniente, si el archivo es usado y modificado constantemente, entonces ese macro hará que el archivo sea más lento, dependiendo de la pc, podría ser una diferencia imperceptible o algo evidente y molesto, si es una archivo que solo se usa para algunas cosas esporádicas, eso no debería ser un problema aunque sea evidentemente más lento.
LibreOffice 7.2.6.2 | Windows 7 Ultimate
Re: Referencia a una celda dentro de un dibujo
¡guau!
me parece perfecta la solución y muy didáctica la explicación
voy a implementarlo y te comento los resultados
muchas gracias
saludos cordiales
me parece perfecta la solución y muy didáctica la explicación
voy a implementarlo y te comento los resultados
muchas gracias
saludos cordiales
LibreOffice 7.5.2.2 en Windows 10