[RESUELTO] Mostrar imagen según valor de celda

Discute sobre la aplicación de hojas de cálculo
Responder
Avatar de Usuario
jjuanhdez
Mensajes: 14
Registrado: Dom Ene 10, 2010 1:46 pm
Ubicación: España

[RESUELTO] Mostrar imagen según valor de celda

Mensaje por jjuanhdez »

Saludos.

Se me presento el siguiente problema, y aún no encuentro la función/macro adecuada para solucionarlo.

Tengo una base de datos en Ooo Calc que contiene los nombres de los empleados.
Necesito que al mostrar el nombre del empleado o su código aparezca su fotografía en una celda a la derecha del nombre.
Sólo hay que mostrar una fotografía a la vez, que puede estar en un directorio, no necesariamente en hoja de cálculo para que no tenga un tamaño muy grande.

Gracias anticipadas.
Última edición por jjuanhdez el Mié Ene 13, 2010 11:00 pm, editado 1 vez en total.
LibreOffice 6.0.4 en Windows 10 Pro
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: [Calc] Mostrar imagen según valor de celda

Mensaje por mauricio »

Hola...

Hay varias formas de hacer lo que quieres, mi recomendación es que uses controles. En el ejemplo anexo, te muestro como mostrar dinámicamente una imagen en un control de imagen, te muestro dos formas, la primera hacemos uso de otro control, un control desplegable (ComboBox) para seleccionar la imagen a mostrar, la segunda es usando control de validación (Celda B19), donde seleccionamos la imagen por número (código), nos apoyamos en una formula personalizada para detectar el cambio de valor en la celda. Espero que el ejemplo sea bastante explicito para que lo adaptes a tus necesidades.

Por favor, si esto responde tu pregunta, edita el título de tu primer mensaje para agregarle al inicio [RESUELTO] de este modo tenemos foros más ordenados. Gracias.

Saludos
Adjuntos
Fotos.zip
Mostrar fotos dinámicamente en Calc
(81.86 KiB) Descargado 21257 veces
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
jjuanhdez
Mensajes: 14
Registrado: Dom Ene 10, 2010 1:46 pm
Ubicación: España

Re: [RESUELTO] Mostrar imagen según valor de celda

Mensaje por jjuanhdez »

Muchas gracias Mauricio, es lo que necesitaba.

Un saludo.
LibreOffice 6.0.4 en Windows 10 Pro
davidmuma
Mensajes: 16
Registrado: Mié Ene 13, 2010 6:50 pm

Re: [RESUELTO] Mostrar imagen según valor de celda

Mensaje por davidmuma »

He estado mirando tu macro, pero no logro adaptarla a lo que necesito.
Te explico, quiero que la imagen cambie cuando escriba su nombre en la celda, por ejemplo:

escribo en una celda imagen1, que ponga la imagen1.jpg
escribo en una celda fotocarlos, que ponga la fotocarlos.jpg

todas las fotos que tengo estan dentro del mismo directorio, pero no estaria de mas que se pudiera definir dicho directorio.

Muchas gracias por adelantado
Última edición por davidmuma el Jue Ene 14, 2010 9:01 am, editado 1 vez en total.
OpenOffice 3.2.0 en Windows 2000
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: [RESUELTO] Mostrar imagen según valor de celda

Mensaje por mauricio »

Hola...

Por favor, procura mostrar el código que usas para mostrarte donde esta el error, así es algo complicado ayudarte, gracias.

El nuevo ejemplo que te anexo hace lo que quieres. Si estableces la ruta del directorio, toma dicha ruta, si no la estableces, toma la ruta actual del archivo desde donde se ejecuta el código, toma el nombre de la imagen de una celda, solo el nombre, uso una constante para la extensión de la imágenes, puedes cambiarla fácilmente por cualquier otra que sea soportada por OOo.

Saludos

P.D. Tienes que fijarte, cuando lo pases a tu archivo, en los nombres del control y del formulario usado, si no tienes idea de lo que te hablo, mi libro te puede ayudar http://user.services.openoffice.org/es/ ... =50&t=1545
Adjuntos
FotosV2.zip
(59.19 KiB) Descargado 10531 veces
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
davidmuma
Mensajes: 16
Registrado: Mié Ene 13, 2010 6:50 pm

Re: [RESUELTO] Mostrar imagen según valor de celda

Mensaje por davidmuma »

Muchas gracias Mauricio, era justo lo que queria.
OpenOffice 3.2.0 en Windows 2000
davidmuma
Mensajes: 16
Registrado: Mié Ene 13, 2010 6:50 pm

Re: [RESUELTO] Mostrar imagen según valor de celda

Mensaje por davidmuma »

Lo llevo intentando toda la mañana y no soy capaz.
Como podria hacer para que la imagen salga en otra hoja, por ejemplo, que yo escriba en la cenda b2 de la hoja1, y la imagen salga y se actualice en la hoja2

Muchas gracias de nuevo, y perdona mi ignorancia.
OpenOffice 3.2.0 en Windows 2000
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: [RESUELTO] Mostrar imagen según valor de celda

Mensaje por mauricio »

Hola...

Tienes que modificar la función donde se asigna la imagen, específicamente la línea:

Código: Seleccionar todo

	oFormulario = ThisComponent.getCurrentController.getActiveSheet.getDrawPage.getForms.getByName( Formulario ) 
por

Código: Seleccionar todo

	oFormulario = ThisComponent.getSheets.getByIndex(1).getDrawPage.getForms.getByName( Formulario ) 
Donde getByIndex, es el número de hoja donde esta el control imagen para mostrar la imagen, contando desde la primero hoja de la izquierda, esta, es la cero (0)

Lo siguiente tomalo como una critica constructiva; no hay que pedir perdón por la ignorancia, pero hay que tener un poco más de iniciativa, te repito mi P.D., que veo no atendiste
P.D. Tienes que fijarte, cuando lo pases a tu archivo, en los nombres del control y del formulario usado, si no tienes idea de lo que te hablo, mi libro te puede ayudar
Si no tienes intención de aprender, lo cual es muy valido, entonces, procura mostrar el código de las pruebas que has hecho, de este modo, nos damos cuenta que lo has intentado al menos.

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
davidmuma
Mensajes: 16
Registrado: Mié Ene 13, 2010 6:50 pm

Re: [RESUELTO] Mostrar imagen según valor de celda

Mensaje por davidmuma »

Gracias otra vez.
Lo que pasa es que estoy muy liado, pero cuando tenga un poco mas de tiempo lo dedicare a leer tu libro y a aprender mas sobre Openoffice.
Vengo de Microsoft Office y me esta costando el cambio.

Un saludo
OpenOffice 3.2.0 en Windows 2000
xanaesx
Mensajes: 24
Registrado: Lun Sep 13, 2010 8:17 pm
Ubicación: Argentina

Re: [RESUELTO] Mostrar imagen según valor de celda

Mensaje por xanaesx »

Hola, estuve viendo el archivo FotosV2.zip http://user.services.openoffice.org/es/ ... php?id=355 enviado por Mauricio y me resultaria muy util para poder mostrar imagenes de un catalogo, pero necesitaria saber en que parte de la macro se define la celda en donde se ingresa el nombre de la imagen y en que parte se define la celda donde se ingresa el directorio o la ruta de la imagen; tambien como se define el tamaño y la posicion de la hoja donde se debe mostrar la imagen.
Ademas al abrir el archivo FotosV2 despues de activar macros me aparece el siguiente mensaje Error en tiempo de ejecucion de Basic. Variable de objeto no establecida. le doy aceptar y funciona, pero como se hace para que no aparezca ese error?
Desde ya agradecido.
Saludos
OpenOffice 4.1.3 y LibreOffice 5.3.2.2 en Windows 7 sp1
Avatar de Usuario
jjuanhdez
Mensajes: 14
Registrado: Dom Ene 10, 2010 1:46 pm
Ubicación: España

Re: [RESUELTO] Mostrar imagen según valor de celda

Mensaje por jjuanhdez »

¡Hola!
Yo lo que hago es utilizar una Function RutaImagen para cada imagen, donde en la llamada Call AsignarImagen( "Standard", "imgImagen", sRuta ) imgImagen es el nombre de cada una de las imágenes a mostrar (3). El tamaño y posición de la imagen a mostrar se hace directamente sobre la imagen pulsando el botón derecho (2)del ratón sobre ella. ¡Ah! estando en Modo diseño (1).
No se si ha sido muy claro la explicación.
Adjunto una imagen que espero te ayude.

Respecto al mensaje de error, aunque no es muy elegante yo lo que he hecho es ignorarlo:

Código: Seleccionar todo

Sub AsignarImagen( Formulario As String, Control As String, Ruta As String)
on error goto exitErr:

Dim oFormulario As Object
Dim oControl As Object

	oFormulario = ThisComponent.getCurrentController.getActiveSheet.getDrawPage.getForms.getByName( Formulario ) 
	oControl = oFormulario.getByName( Control )

	With oControl
		.ImageURL = ConvertToURL( Ruta )	'La ruta de la imagen a mostrar
		.ScaleImage = True					'Si se va a escalar la imagen
		.ScaleMode = 1						'El modo de escalar ( 2 = Ajustar al control)
	End With

exitErr:
' return ""	
End Sub
Por cierto, en LibreOffice v3.2 no tengo problema alguno, pero en v3.3 - v3.6 al exportar a PDF las imágenes no aparecen, mientras que en la vista preliminar se muestran correctamente. ¿Alguien sabe cómo corregirlo?

Un saludo.
Adjuntos
FotosV2.png
LibreOffice 6.0.4 en Windows 10 Pro
piccicatto
Mensajes: 11
Registrado: Vie Sep 21, 2012 9:59 am

Re: [RESUELTO] Mostrar imagen según valor de celda

Mensaje por piccicatto »

Hola, me ha sido muy útil la solución que da Mauricio en Fotos.zip, y estoy implementándolo para una lista de fichas de personas con sus datos y su foto: Necesito que a las imágenes almacenadas no haya que nombrarlas por imagen1.jpg, imagen2.jpg, etc, sino que se puedan llamar por ejemplo Perez Lopez Miguel.jpg, Garcia Martin Ana.jpg, etc, para que al añadir clientes nuevos a la lista y ordenarla de nuevo alfabéticamente cada cliente coincida con su propia foto. No se si me he explicado bien.
He consultado el libro de Mauricio en la pag. 446, ap. 7.12 (Otros controles), pero no encuentro la clave para hacerlo y como mi nivel de OOo Basic es mínimo, he intentado hacerlo a mi manera tocando las macros de la siguiente forma:
Donde pone Const NOMBRE_IMAGENES As String = "imagen" he puesto Const NOMBRE_IMAGENES As String = "_" y lo mismo en sRuta = ConvertToUrl( Directorio( ThisComponent ) & "/imagen" & Format(Valor) & ".jpg" ) donde he puesto sRuta = ConvertToUrl( Directorio( ThisComponent ) & "/_" & Format(Valor) & ".jpg" )
Luego he cambiado los nombres de las fotos almacenadas por _PerezLopezMiguel.jpg con la esperanza de que la macro las llamaría, pero lo único que he conseguido es que en el cuadro de propiedades del control de imagen, en la pestaña general, en el campo imagen, la ruta que aparece en gris donde antes aparecía C:\...\imagen1.jpg ahora aparezca C:\...\_1.jpg.
Es evidente que no tengo ni idea verdad?
Si alguien sabe si es posible hacer esto, se lo agradecería si me lo explica.
Gracias
Version OpenOffice: 3.4.9593.500
OS: Windows Vista Home Basic SP2
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: [RESUELTO] Mostrar imagen según valor de celda

Mensaje por mauricio »

Si vas a insertar mas imágenes y a ordenarlas, entonces, lo que necesitas es esto: http://user.services.openoffice.org/es/ ... r+imagenes

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
xanaesx
Mensajes: 24
Registrado: Lun Sep 13, 2010 8:17 pm
Ubicación: Argentina

Re: [RESUELTO] Mostrar imagen según valor de celda

Mensaje por xanaesx »

Aquí les envio un vinculo http://centrocapemi.com/datos/_Programa ... S_CALC.rar para descargar una planilla Calc que he realizado para ser utilizada por distintas personas ubicadas en distintas ciudades y que estas puedan tener los datos actualizados de los productos con sus correspondientes imágenes.

Este planilla la pude armar gracias a la ayuda de los usuarios de este foro como mauricio y varios otros que hacen posible usar de una manera mas facil y directa esta gran herramienta OpenOffice.

Primero deberán tener conexión a internet (esto es para mostrar las imágenes y actualizar los datos), luego tener activado calc para utilizar macros.

Al abrir el archivo nos aparecerá el mensaje que nos pregunta si queremos actualizar los datos, le podemos poner que no y utilizar los datos ya cargados, pero si desea actualizados en este momento puede dar la opción si (demora un momento en descargar la actualización de datos, que termina al desaparecer el mensaje principal).

Las imágenes la tengo cargadas en el servidor y las toma desde allí, pero tengo otro archivo que las toma desde una carpeta local en red LAN o desde el mismo equipo e incluso me muestra el vinculo al lado de cada código en la Hoja LISTA_CONSULTA.

Se puede ingresar hasta 10000 artículos o códigos, pero eso depende de cada caso personal.

A continuación trato de detallar el uso del archivo describiendo cada hoja.

Hoja BUSCAR_x_CODIGO puede buscar ingresando el código manualmente en la celda B3 (el código deberá ser idéntico como en la Hoja LISTA_BASE; le mostrara todos los datos relacionados al código ingresado y su imagen correspondiente cargada desde internet, si deseamos ver la imagen en tamaño mayor u original hacemos click en el vinculo de la celda B15.

Hoja LISTA_CONSULTA muestra todos los datos de la hoja LISTA_BASE con la opción de filtrar con autofiltro y en la parte superior izquierda hay 2 botones para las macros uno llamado TODO su función es que tras haber utilizado autofiltro haciendo click en TODO vuelve a mostrar todos los datos (limpia el autofiltro); el botón VER FICHA me va a llevar a la hoja BUSCAR_x_CODIGO y muestra los datos con la imagen correspondiente de la fila seleccionada en la hoja LISTA_CONSULTA.

Hoja GUARDAR_%_GANANCIA_PRECIO_LISTA realiza los cálculos en base al % descuento y al % utilidad o ganancia ingresado sobre el precio de la LISTA_BASE para ser mostrado en la hoja BUSCAR_X_CODIGO.

Hoja LISTA_BASE es la hoja en donde se almacenan los datos importados o vinculados desde un archivo html que he subido al servidor internet para que cada cliente pueda actualizarlos cuando desee o crea conveniente y que es la base para todas las demás hojas.

Se escuchan sugerencias.
Saludos.
OpenOffice 4.1.3 y LibreOffice 5.3.2.2 en Windows 7 sp1
Caesar
Mensajes: 4
Registrado: Jue Dic 04, 2014 12:09 pm

Re: Mostrar imagen según valor de celda

Mensaje por Caesar »

Hola:

Lo he intentado y no he sido capaz. Adjunto una fotografía de lo que he realizado hasta entonces. A la derecha está la opción de la alineación. Cada celda tiene la opción de una lista para escoger al jugador de una lista. En el recuadro del campo, aparecería por posición el nombre del jugador. Y quisera lograr colocar sobre este, la fotografía del jugador. No he sido capaz de conseguirlo, pese a dedicarle muchas horas. Muchas gracias de antemano y ruego ayuda a Dios y a los hombres. :D :D
Adjuntos
imagen archivo
imagen archivo
Windows 7, 32 bits; Open Office 4.1.1.
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: [RESUELTO] Mostrar imagen según valor de celda

Mensaje por mauricio »

No basta la fotografía, tienes que anexar el código para indicarte donde lo estas implementando mal... apuesto a que primero te ayudamos los hombres... ¿cuanto tiempo le damos a los dioses para responderte?
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Caesar
Mensajes: 4
Registrado: Jue Dic 04, 2014 12:09 pm

Mostrar imagen según valor de celda

Mensaje por Caesar »

Bien tu respuesta. No se ni como lo estoy haciendo. Puedo mandarte el archivo?. gracias
Adjuntos
alineacion.ods
(45.8 KiB) Descargado 763 veces
Windows 7, 32 bits; Open Office 4.1.1.
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: [RESUELTO] Mostrar imagen según valor de celda

Mensaje por mauricio »

El archivo anexo no trae nada de código...
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Jamaruco
Mensajes: 1
Registrado: Dom Feb 14, 2016 6:00 pm

Re: [RESUELTO] Mostrar imagen según valor de celda

Mensaje por Jamaruco »

Hola a todos y gracias de antemano:
He estado mirando el ejemplo "Mostrar fotos.ods", que me parece muy interesante para lo que necesito. Por lo que veo, se cogen las imágenes desde el mismo directorio donde está la hoja de cálculo. Lo que quiero hacer y no consigo, es adaptarla para que tome las imágenes desde la carpeta "imágenes", ya que quiero añadir bastantes imágenes y prefiero que estén separadas en una carpeta aparte.
Adjuntos
1.jpg
OpenOffice Versi??n: 4.4.2.2 Windows 10 Pro y Ubuntu 15.10
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: [RESUELTO] Mostrar imagen según valor de celda

Mensaje por mauricio »

Esa respuesta la dimos en este mismo tema más arriba: https://forum.openoffice.org/es/forum/v ... 2406#p7467
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Monica 19
Mensajes: 1
Registrado: Mar Feb 16, 2016 4:24 pm

Re: [RESUELTO] Mostrar imagen según valor de celda

Mensaje por Monica 19 »

Buen dia!
Quisiera saber si hay una manera donde tome valores del las celdas e inserte una forma predeterminada como un cuadro con esas medidas en cm ?
OpenOffice 3.1 en Windows Vista
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: [RESUELTO] Mostrar imagen según valor de celda

Mensaje por mauricio »

Si la hay, con macros... quiero suponer que lo que realmente preguntas es el como?, pero sin saber tu nivel de conocimiento de macros es un poco complicado ayudarte... además, esa es otra pregunta, por favor, si no lo has hecho, lee las normas de nuestros foros: https://forum.openoffice.org/es/forum/v ... ?f=3&t=795

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
cebm_75
Mensajes: 1
Registrado: Lun Jun 07, 2021 1:04 pm

Re: [RESUELTO] Mostrar imagen según valor de celda

Mensaje por cebm_75 »

Hola, estoy con este tema, y he conseguido cambiar las fotos según valor de celda, pero me pasa lo mismo "Ademas al abrir el archivo FotosV2 despues de activar macros me aparece el siguiente mensaje Error en tiempo de ejecucion de Basic. Variable de objeto no establecida. le doy aceptar y funciona, pero como se hace para que no aparezca ese error?"

¿Cómo puedo eliminar eso?

Gracias
Oppen Office 4.1.6, Windows 10
Responder