Insertar imágenes en excel con vba

Que hacer ante un problema personal. Lugar para pedir consejo o asesoramiento sobre temas que a diario nos pueden suceder.
¿No sabes donde encontrar ayuda?, pues pregunta aquí, tal vez te podamos aconsejar.


Tema anteriorTema siguiente
Avatar de Usuario

Autor del Tema
Daniel-its
Usuari@
Usuari@
Mensajes: 40
Registrado: Lun Ene 11, 2016 7:35 am
Temas: 0
Programa CAD o CAM: SOLID WORKS
Género:
Estado: Desconectado

Insertar imágenes en excel con vba

Mensaje por Daniel-its »

Hola buen día
Tengo un problema que no he encontrado solución :(

Debo realizar un trabajo en el que debo insertar más de 500 imágenes y que estas queden ajustadas a las celdas
La imagen adjunta es solo un ejemplo, ya que no cuento con el documento original en mi pc

He estado leyendo varios sitios en inglés que te dan los códigos para insertarlos en visual basic, ya logré entender como se introducen los códigos. Pero no tengo idea de que modificar para que relacione el nombre de la celda, con el nombre de la imagen, y esta última la coloque en la celda deseada.

Imagen

Este es el código que estoy usando.

► Mostrar Spoiler

En este punto cualquier ayuda o sugerencia que me puedan brindar me viene bien.

De antemano muchas gracias.

Última edición por Mondeo14 el Dom Dic 18, 2016 3:09 am, editado 1 vez en total.
Avatar de Usuario

caher611
Usuari@
Usuari@
Mensajes: 49
Registrado: Lun Ene 05, 2015 5:41 pm
Temas: 0
Programa CAD o CAM: INVENTOR
Agradecimiento recibido: 4 veces
Género:
Estado: Desconectado

Re: Insertar imágenes en excel con vba

Mensaje por caher611 »

Hola. Hace mucho tiempo que no programo en VB, pero intentaré explicarte un poco. Si has copiado el código literalmente lo primero que tienes que hacer es nombrar una hoja como "Object" o cambiar en las líneas donde se invoca Sheets el nombre por el que tengas en tu hoja. Para asociar los archivos tienes que cambiar la dirección en la línea Folderpath. Ahí tienes que poner la dirección completa donde tienes la carpeta con las imágenes. Según está ese código, te va a poner las imágenes en la columna B y los nombres de los archivos en la columna A. Saludos

Avatar de Usuario

Autor del Tema
Daniel-its
Usuari@
Usuari@
Mensajes: 40
Registrado: Lun Ene 11, 2016 7:35 am
Temas: 0
Programa CAD o CAM: SOLID WORKS
Género:
Estado: Desconectado

Re: Insertar imágenes en excel con vba

Mensaje por Daniel-its »

Gracias por la respuesta.
Realicé los cambios que me aconsejaste
Pero cuando trato de correr el código me marca el siguiente error y me señala la primer linea en amarillo
¿Qué estoy haciendo mal? :47

Imagen

Aquí el código tal y como lo estoy usando en vba

► Mostrar Spoiler
Última edición por Mondeo14 el Dom Dic 18, 2016 3:09 am, editado 1 vez en total.
Avatar de Usuario

Autor del Tema
Daniel-its
Usuari@
Usuari@
Mensajes: 40
Registrado: Lun Ene 11, 2016 7:35 am
Temas: 0
Programa CAD o CAM: SOLID WORKS
Género:
Estado: Desconectado

Re: Insertar imágenes en excel con vba

Mensaje por Daniel-its »

Vale ya vi cual era mi error al introducir el código

Imagen

► Mostrar Spoiler

Ahora el problema es que cuando corro el código no hace lo que esperaba
Lo que hace es que me pega la imagen desde la celda "B1" y pega el nombre de la imagen en la columna "A1"
y así sucesivamente.

Los valores de la columna "A" están todos definidos y no cambian.
Lo que necesito es que inserte la imagen en la celda "B2, B3..." si coincide con el valor de la celda "A2, A3..."

Alguna idea? :30

Última edición por Mondeo14 el Dom Dic 18, 2016 3:09 am, editado 1 vez en total.
Avatar de Usuario

caher611
Usuari@
Usuari@
Mensajes: 49
Registrado: Lun Ene 05, 2015 5:41 pm
Temas: 0
Programa CAD o CAM: INVENTOR
Agradecimiento recibido: 4 veces
Género:
Estado: Desconectado

Re: Insertar imágenes en excel con vba

Mensaje por caher611 »

No sé si te he entendido bien.¿Quieres que coincida el nombre con la imagen? Eso ya lo hace ahora.A mi entender lo mejor sería que pusiera las imágenes, por ejemplo, en unas 5 columnas y las filas hasta que terminen. Si no quieres que ponga el nombre en la columna A, pon una " ' " antes de la línea Sheets("Object").Range("A" & counter).Value = fls.Name.

Avatar de Usuario

Autor del Tema
Daniel-its
Usuari@
Usuari@
Mensajes: 40
Registrado: Lun Ene 11, 2016 7:35 am
Temas: 0
Programa CAD o CAM: SOLID WORKS
Género:
Estado: Desconectado

Re: Insertar imágenes en excel con vba

Mensaje por Daniel-its »

Gracias con ese cambio ya no reemplaza los nombres de la primera columna

Imagen

Lamentablemente el formato que debo usar ya esta prediseñado y hay poco que puedo cambiar en cuanto al layout
Esta es una representación aproximada.

Imagen

Viene a ser como un catalogo muy grande con al rededor de 400 números diferentes en la columna "A" y cada número tiene dos imágenes las cuales deben ir en su respectiva celda

Por lo cual el código tiene que poner la imagen "IMG001" en la columna "C4" solo si coincide que el valor de la celda "A4" es "IMG001"
Y así sucesivamente.

Esa es la razón por lo cual no puedo hacerlo manualmente. Ya que debería estar insertando una por una y ajustarlas manualmente a la celda.

Ya comprobé que el código funciona perfecto para insertar múltiples imágenes y ajustarlas a la celda. Solo necesito que las inserte en el orden que expliqué anteriormente.

Hay esperanza? :58

Muchas gracias por tu ayuda :21

Última edición por Mondeo14 el Dom Dic 18, 2016 3:09 am, editado 1 vez en total.
Avatar de Usuario

caher611
Usuari@
Usuari@
Mensajes: 49
Registrado: Lun Ene 05, 2015 5:41 pm
Temas: 0
Programa CAD o CAM: INVENTOR
Agradecimiento recibido: 4 veces
Género:
Estado: Desconectado

Re: Insertar imágenes en excel con vba

Mensaje por caher611 »

Hola. Se puede hacer fácilmente lo que propones en la segunda imagen, pero antes me tienes que explicar por qué has nombrado a la función precisamente "AddOLEobject", desde dónde llamas a esa función para que se ejecute o si lo hace por ejemplo al abrirse el libro, activarse la hoja, etc...

Avatar de Usuario

Autor del Tema
Daniel-its
Usuari@
Usuari@
Mensajes: 40
Registrado: Lun Ene 11, 2016 7:35 am
Temas: 0
Programa CAD o CAM: SOLID WORKS
Género:
Estado: Desconectado

Re: Insertar imágenes en excel con vba

Mensaje por Daniel-its »

"AddOLEobject" Ya venía así en la página donde lo copié.

El código no lo usaría nadie mas que yo. Así que lo ejecuto directamente desde vba.
Al final los demás solo verán el trabajo impreso.

Por cierto encontré otro código que es un poco más intuitivo.
Pero por alguna razón no detecta las imágenes en la carpeta. :41

Imagen

¿Qúe es lo que estoy haciendo mal? :46

► Mostrar Spoiler
Última edición por Mondeo14 el Dom Dic 18, 2016 3:09 am, editado 1 vez en total.
Avatar de Usuario

caher611
Usuari@
Usuari@
Mensajes: 49
Registrado: Lun Ene 05, 2015 5:41 pm
Temas: 0
Programa CAD o CAM: INVENTOR
Agradecimiento recibido: 4 veces
Género:
Estado: Desconectado

Re: Insertar imágenes en excel con vba

Mensaje por caher611 »

Hola. Haz esto: En el primer código inserta la línea "counter=3" antes de la línea " For Each fls In listfiles...". Cambia el valor de Range en todas las líneas donde aparezca por la letra de la columna que prefieras (creo que en tu caso la C). Ahora copia el código entero y ponlo en un sitio diferente (módulo, procedimiento, etc..). Cambia la dirección de la carpeta de las imágenes que quieras poner y cambia el valor Range con la letra H. Si lo ejecutas directamente desde VB funcionará, aunque sería mejor llamar la función con un procedimiento, pero bueno creo que te servirá.

Avatar de Usuario

Autor del Tema
Daniel-its
Usuari@
Usuari@
Mensajes: 40
Registrado: Lun Ene 11, 2016 7:35 am
Temas: 0
Programa CAD o CAM: SOLID WORKS
Género:
Estado: Desconectado

Re: Insertar imágenes en excel con vba

Mensaje por Daniel-its »

Funcionó! :56 :21

Imagen

Muchas gracias por tu ayuda, sin duda me has salvado de horas de trabajo aburrido

Te debo Una! :19

Última edición por Mondeo14 el Dom Dic 18, 2016 3:10 am, editado 1 vez en total.
Tema anteriorTema siguiente