domingo, febrero 15, 2009

Catálogo de imágenes en Excel 2007

En el pasado hemos mostrado cómo crear un catálogo de imágenes con Excel. El modelo fue desarrollado usando Excel 2003.

Al tratar de crear el modelo usando Excel 2007 vimos que el paso 5, ligar el nombre definido “imagen” en la barra de las fórmulas a la imagen no era posible.

Una solución posible es crear el modelo en Excel 2003 y luego abrir el archivo en Excel 2007. Pero era necesario dar una solución más directa.

En esta nota mostraremos dos soluciones posibles.

Empecemos por describir el problema. Si seguimos las instrucciones de la nota mencionada llegamos al #5 donde ligamos el nombre definido “imagen” a la imagen que pegamos en una celda. Esto lo hacíamos seleccionando la imagen y luego haciendo un clic en la barra de fórmulas para poner “=imagen”. Excel 2007 no nos permite hacer esto. La barra de las formulas no responde cuando tenemos seleccionada una imagen.

La forma de hacerlo en Excel 2007 es con una de estas dos técnicas:

# Usando el objeto Image Bitmap (propuesta por el lector Percy Herrera en uno de los comentarios de la nota). Los pasos son:

1 – en lugar de pegar la imagen en la celda, abrimos el menú Objeto en la pestaña Insertar de la cinta






El interfaz de Excel cambia



Todo lo que hacemos es un clic en cualquier lugar de la hoja, fuera del área de la imagen que Excel acaba de crear.

2 – Ajustamos el cuadro que Excel ha creado para que coincida con los bordes de la celda.

3 – En la barra de fórmulas aparece “=INCRUSTAR(…”




Reemplazamos esta fórmula por “=imagen”






Al apretar Enter, aparecerá la imagen cuya referencia (número de catálogo en nuestro caso) aparece en la celda A3





# Usando el control Imagen de la barra de controles.

1 – En la pestaña Programador de la cinta elegimos el control Imagen y lo ubicamos sobre la celda B3





El resultado es similar al de la técnica anterior





2 – Como en el caso anterior, reemplazamos “=INCRUSTAR(…” por “=imagen”, con el mismo resultado.





Technorati Tags:

41 comentarios:

  1. Hola a todos,

    He utilizado el control imagen para poder cargar las fotografias y me funciona perfectamente, pero mi problema es que a la hora de imprimir me salen las fotografias desplazadas. Alguien sabe porque sucede esto??

    ResponderBorrar
  2. Disculpa pero quisiera saber como hacer esto con las imagenes ya sea en excel 2003 o 2007 pero manteniendo las imagenes externamente en formato jpg al archivo de excel para asi poder manipularlas mejor.

    ResponderBorrar
  3. En breve estaré publicando una nota sobre el tema.

    ResponderBorrar
  4. ya intente de las 2 formas y no me aparece la imagen para nada...:( es algun formato de imagen especial el q se usa

    ResponderBorrar
  5. Efectivamente, no todos los formatos de imágenes pueden ser usados. ¿Qué tipo de imagen estás usando?

    ResponderBorrar
  6. Hola, he hecho todo lo que decia tu post pero siempre me sale el mensaje: "referencia no valida" al momento de cambiar el nombre "incrustar..." por =imagen

    Yo utilizo excel 2010 y he probado los pasos de otros blogs pero al final llego al mismo mensaje: "referencia no valida", por favor tu ayuda con este tema

    ResponderBorrar
  7. "Imagen" es un nombre que crea una referencia al rango que contiene la imagen. Me parece que no has creado ese nombre. Fijate en la nota original.

    ResponderBorrar
  8. He utilizado el procedimiento, sin embargo, solo me aparece la imagen numero uno y el resto de las imagenes salen. Necesito ayuda por favor

    ResponderBorrar
  9. Puedes enviarme el archivo (fijate en el enlace Ayuda)

    ResponderBorrar
  10. MUCHAS GRACIAS POR TU TRABAJO
    De verdad que es de gran utilidad. Me funciona a la perfección pero este ejemplo se me queda corto para lo que yo necesito.
    Mi necesidad es este mismo ejemplo, pero en más líneas hacia abajo, hasta un total de 10 filas.
    Con la descripción no tengo problema porque he fijado el dato referente a la celda A2 y no hay problema.

    =DESREF('Base de Datos'!$A$2;COINCIDIR(C11;lista;0)-1;2)

    El problema está cuando quiero que aparezcan las imágenes de las celdas inferiores.
    ¿Se te ocurre alguna forma de arreglarlo?

    MUCHAS GRACIAS

    ResponderBorrar
  11. José Martín,

    por lo que puedo ver, hay un error en la definición de la fórmula. Te sugiero que vayas a la nota original (el primer enlace en la nota) y descargues el ejemplo para ver cómo funcionan los rangos definidos. También hay un enlace a una animacióon que explica cómo construir el modelo paso por paso.

    ResponderBorrar
  12. A que rango de celdas debo de nombrar como "Imagen"?? Porque tengo un problema; en el área de imagen de la celda B3 de la hoja "Catalogo" me aparece todas las imagenes que tengo en la hoja "Base de datos" Espero me puedan ayudar, ocupo esta erramienta para desarrollar mi tema de Tésis. Gracias.

    ResponderBorrar
  13. Fijate en la nota para la versión 2003 de Excel.
    También puedes descargar una explicación animada del proceso.

    ResponderBorrar
  14. me sale todo pero no se cambia automaticamente la imagen cuando selecciono otro elemento de la lista, sino que tengo que posicionarme sobre la fórmula =imagen y darle enter para que cambie.

    alguien sabe como hacer para que se cambie sola la imagen?

    ResponderBorrar
  15. disculpa Jorge, me podrías ayudar? revisé y esta todo como indica el ejemplo pero no se cambian automáticamente las imagenes cuando selecciono distintos elementos de la lista, sino que tengo que posicionarme sobre ella y apretar enter. como puedo solucionar este problema.
    gracias!

    ResponderBorrar
  16. Paula,
    fijate que el método de cálculo esté en Automático (Opciones--Fórmula--Métodos de cálcula). Pareciera ser que está en Manual.

    ResponderBorrar
  17. En vista preliminar, ¿aparece la imagen?
    Una observación: nunca incluyas tu mail en un comentario. Puedes contactarme directamente en la dirección que aparece ne el enlace Ayuda (en la pare superior de la plantilla).

    ResponderBorrar
  18. hola no no aparece en vista preliminar tampoco
    es un problema con el objeto en si, porque si desagrupo el objeto y me separa la imagen del marco que crea excel por si mismo se ve, pero claro pierdo la relacion con el nombre "=imagen" de la imagen.
    gracias de nuevo y, como borro ahora mi mail?

    ResponderBorrar
  19. Tendré que investigarlo (en mi archivo no sucede). He borrado tu comenatio con el mail.

    ResponderBorrar
  20. de nuevo gracias si te parece te puedo enviar el archivo

    ResponderBorrar
  21. Gracias por tan espectacular ayuda. He usado este ejemplo con la versión 2007 y no tengo problema, el GRAN problema lo tengo cuando intento hacerlo en la nueva versión 2010. Cuando llego a la parte de escribir "=imagen" me dice "La referencia no es válida". Si hago paralelo paso a paso el ejemplo en las dos versiones de Excel 2007 y 2010, sólo en la 2010 se queda pues no es posible nombrar en la barra de fórmulas la figura con "=Imagen" o con cualquier otro nombre.

    Lo curioso del asunto es que si hago este ejercicio en el 2007 y lo abro en el 2010 funciona de maravilla y hasta la gráficas tiene el "=imagen" en la barra de fórmulas.

    De antemano les agradecería la solución.

    ResponderBorrar
  22. Ya habían mencionado este problema en un comentario anterior. Te sugiero que me mandes tu archivo para que pueda investigar donde está el problema (aparenemente relacionado con Excel 2010).

    ResponderBorrar
  23. Hola Jorge,
    Llegué a tus artículos queriendo resolver algo bastante más simple, pero no encuentro como. Lo separo en 2 problemas.
    1) problema asignar una imagen a una celda: Cuando creo una hoja como la llamada "Base de Datos" donde tengo varias filas con el código, la imagen y la descripción, por ejemplo, resulta que al ordenar o filtrar, las imagenes no se mueven con la fila. He probado con las opciones de "mover y cambiar tamaño" o "mover y no cambiar tamaño" pero el problema continúa y no parece haber forma de "anclar" la imagen a la celda deseada, como si fuera un registro de Base de datos.
    2) Necesito utilizar la hoja "Base de datos" como el inventario de productos y desde otra hoja hacer presupuestos poniendo renglón por renglón los códigos de producto y que me aparezca la descripción y demás información del producto, cosa que realizo con una simple referencia al campo correspondiente en la "Base de datos" pero al referenciar la celda que contiene la imagen, la misma no se muestra.
    Espero haber sido claro... DBLawes

    ResponderBorrar
  24. Hola,
    en relación a la primera consulta, las imágenes no están dentro de la celda, como has desucbierto. No conozco ninguna técnica sencilla para lograr lo que estás buscando. En cuanto a la segunda, tendría que ver que tipo de referencia estás usando.

    ResponderBorrar
  25. amigo, tendras alguna solucion para excel 2010...

    ResponderBorrar
  26. ¿Probaste la solución de esta nota en Excel 2010?

    ResponderBorrar
  27. Buen dia
    Quisiera saber como puedo hacer:
    Yo tengo una tabla que genera una factura q al generar la factura el reconozca la ref. e inmediatamente me aparezca la imagen de la ref. es decir no utilizar la celda desplegable, tambien mi factura tiene 3 imagenes de la misma ref. pero deben aparecer en diferentes partes de la pag como podria hacer esto.

    Muchas gracias por tu ayuda
    y felicitaciones por los excelentes apuntes del blog

    ResponderBorrar
  28. Gracias por los conceptos.
    Creo que tienes claro, por el mismo planteo de la consuta, que la solución no puede ponerse en el marco de un comentario.
    Habría que desarrollar una aplicación con macros y otros elementos avanzados.

    ResponderBorrar
  29. Hola Jorge. Este comentario también es para PAULA.
    A mi me pasó exactamente lo mismo que a ti PAULA,(a cada cambio de ID, la foto no cambiaba, a pesar de estar todo bien programado, etc). La solución se dio cuando guardé y CERRE el archivo, incluso cerré todo el Excel 2007. Una vez abierto el archivo, todo funciona perfectamente. ¿Raro no?.
    Mil gracias Jorge por tu didáctica.

    ResponderBorrar
  30. Como en el caso de Paula, me parece que tiene que ver con el método de calculo del cuaderno (al guardar y cerrar Excel recalcula todas la fórmulas).
    ¿Podrías enviarme el archivo?

    ResponderBorrar
  31. Enrique Castro07 marzo, 2013 18:31

    Muchas gracias, me funcionó al 100%.
    Necesitaba hacer un catalogo de 60 artículos y q las fotos se encontraran en el archivo excel por portabilidad.
    Excelente post.
    ECE

    ResponderBorrar
  32. ESTIMADO JORGE:

    Este catalogo me salia muy bien en el excel 2003 y en el 2007 va bien también todos los pasos hasta que en la hoja del catálogo quiero añadir mas lineas entonces no se que pasa se des configura todo un rollo me podrías ayudar quisiera que vieras mi documento por favor

    ResponderBorrar
  33. Estimado Jorge: Estoy usando el excel 2007, todos los pasos me salen bien todo va bien hasta que añado más líneas en la hoja de catálogos, se desconfigura todo podrias revisar mi archivo por favor??? como hago para hacertelo llegar?

    ResponderBorrar
  34. Fijate en la pestaña Ayuda, en la parte superior de la plantilla.

    ResponderBorrar
  35. a mi me da un error dice que la referencia no coiciden

    ResponderBorrar
  36. Noel, obviamente tienes que revisar las referencias. También te sugiero qeu descargues el ejemplo que aparece en la nota original (el primer enlace en este post).

    ResponderBorrar
  37. Buen dia, tengo el mismo problema que muchos en este foro, tengo excel 2010 y no puedo asignar "=imagen" en la imagen. El error es "Reference is not valid" Espero puedan ayudarme. Saludos-

    ResponderBorrar
  38. Hola, efectivamente, hay un problema con el objeto en Excel 2010. Espero poder publicar una solución en breve.

    ResponderBorrar
  39. Hola Jorge:
    Estoy hacienda unas ayudas visuales y para ligar los datos de la ayuda uso el índice coincidir.
    Lo que yo busco, sin usar lista desplegale es que al momento de escribir "a" y dar enter , me aparezca la imagen que le corresponde.
    ¿Creés que haya algún método para hacerlo?

    ResponderBorrar
  40. Hola
    se puede hacer programando un evento (macro). Pero mostrar como hacerlo excede el marco de un comentario. Puedes ponerte en contacto conmigo por mail privado siguiendo las instrucciones que aparecen en el enlace Ayuda (en la parte superior del blog).

    ResponderBorrar

Nota: sólo los miembros de este blog pueden publicar comentarios.