Página 1 de 1

[RESUELTO] Mostrar imagen según valor de celda

Publicado: Dom Ene 10, 2010 9:13 pm
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.

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

Publicado: Lun Ene 11, 2010 8:15 am
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

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

Publicado: Mié Ene 13, 2010 11:01 pm
por jjuanhdez
Muchas gracias Mauricio, es lo que necesitaba.

Un saludo.

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

Publicado: Jue Ene 14, 2010 8:58 am
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

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

Publicado: Jue Ene 14, 2010 10:14 am
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

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

Publicado: Jue Ene 14, 2010 11:23 am
por davidmuma
Muchas gracias Mauricio, era justo lo que queria.

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

Publicado: Jue Ene 14, 2010 2:25 pm
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.

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

Publicado: Jue Ene 14, 2010 5:54 pm
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

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

Publicado: Lun Ene 18, 2010 4:32 pm
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

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

Publicado: Mié Ago 22, 2012 6:15 pm
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

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

Publicado: Vie Ago 24, 2012 7:00 pm
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.

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

Publicado: Vie Sep 21, 2012 12:32 pm
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

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

Publicado: Vie Sep 21, 2012 5:03 pm
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

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

Publicado: Mar Sep 25, 2012 6:37 pm
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.

Re: Mostrar imagen según valor de celda

Publicado: Mar Dic 16, 2014 12:04 pm
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

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

Publicado: Mar Dic 16, 2014 7:28 pm
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?

Mostrar imagen según valor de celda

Publicado: Mar Dic 16, 2014 9:35 pm
por Caesar
Bien tu respuesta. No se ni como lo estoy haciendo. Puedo mandarte el archivo?. gracias

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

Publicado: Mié Dic 17, 2014 2:44 am
por mauricio
El archivo anexo no trae nada de código...

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

Publicado: Dom Feb 14, 2016 7:41 pm
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.

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

Publicado: Lun Feb 15, 2016 4:00 am
por mauricio
Esa respuesta la dimos en este mismo tema más arriba: https://forum.openoffice.org/es/forum/v ... 2406#p7467

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

Publicado: Mar Feb 16, 2016 4:28 pm
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 ?

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

Publicado: Mar Feb 16, 2016 4:36 pm
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

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

Publicado: Lun Jun 07, 2021 1:08 pm
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