¿Cómo vincular una imagen con un valor de celda?

Ejemplo: obtener en la celda B1 la imagen correspondiente al código que se escribe en A1. La imagen está en una carpeta y tiene el nombre del código que estará en A1.

1 respuesta

Respuesta
1

Utiliza la siguiente macro. El nombre de la imagen que pongas en la celda A1, deberá tener la extensión, por ejemplo: Foto1.jpg

Cambia en la macro "c:\trabajo" por la carpeta en donde tienes la imagen.

Sub InsertarImagen()
'Por.Dante Amor
    'Nombre de la carpeta
    carpeta = "c:\trabajo\"
    'Nombre de la foto
    img = Range("A1")
    'Celda para poner la foto
    With Range("B1")
        arr = .Top
        izq = .Left
        anc = .Width
        alt = .Height
    End With
    ActiveSheet.Pictures.Insert(carpeta & img).Select
    With Selection
        .Placement = xlMoveAndSize
        .PrintObject = True
        .ShapeRange.LockAspectRatio = msoFalse
        .ShapeRange.Top = arr
        .ShapeRange.Left = izq
        .ShapeRange.Height = alt
        .ShapeRange.Width = anc
        .ShapeRange.Rotation = 0#
    End With
End Sub

Sigue las Instrucciones para un botón y ejecutar la macro

  1. Abre tu libro de Excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. En el menú elige Insertar / Módulo
  4. En el panel del lado derecho copia la macro
  5. Ahora para crear un botón, puedes hacer lo siguiente:
  6. Inserta una imagen en tu libro, elige del menú Insertar / Imagen / Autoformas
  7. Elige una imagen y con el Mouse, dentro de tu hoja, presiona click y arrastra el Mouse para hacer grande la imagen.
  8. Una vez que insertaste la imagen en tu hoja, dale click derecho dentro de la imagen y selecciona: Tamaño y Propiedades. En la ventana que se abre selecciona la pestaña: Propiedades. Desmarca la opción “Imprimir Objeto”. Presiona “Cerrar”
  9. Vuelve a presionar click derecho dentro de la imagen y ahora selecciona: Asignar macro. Selecciona: InsertarImagen
  10. Aceptar.
  11. Para ejecutarla dale click a la imagen.

Saludos. Dante Amor

No olvides valorar la respuesta.

Muchas gracias. No puedo ejecutar la macro. Al parecer es un error.

La ejecuto y me sale resaltado en color amarillo el renglón:

ActiveSheet.Pictures.Insert(carpeta & img).Select

Qué puedo hacer o qué pasa?

Muchas gracias por todo,

Carlos Galván

¿Y exactamente qué tienes en la celda A1?

¿Y en qué carpeta tienes la imagen?

La carpeta es E:\Diseño

en la celda A1 tengo el nombre de la foto tv.jpg

Cambia en la macro la carpeta, dice esto

carpeta = "c:\trabajo\"

Por esto

carpeta = "E:\Diseño\"

También verifica que el archivo se llama "foto tv.jpg", también puede llamarse "foto tv.jpeg", prueba con los 2 nombre con jpg y con jpeg

Hola, buen día.

Ya había quedado solucionado el problema de la macro, pero me sale de nuevo el error que le había comentado:

La ejecuto y me sale resaltado en color amarillo el renglón:

ActiveSheet.Pictures.Insert(carpeta & img).Select

¿Qué pasa?

Saludos

Si ya funcionaba y ahora no, revisa nuevamente los nombres de los archivos y de las carpetas, la carpeta debe tener al final la diagonal \

Revisa los espacios en el nombre del archivo y también revisa la extensión

Perfecto. Ya sirve sin problemas. Otra pregunta.... Alguna forma de que la imagen aparezca escalada a valores predeterminados y no justamente del tamaño de la celda??

saludos!!

Cambia en la macro estos valores

.ShapeRange.Top = arr
        .ShapeRange.Left = izq
        .ShapeRange.Height = alt
        .ShapeRange.Width = anc

por ejemplo

.ShapeRange.Top = 100
        .ShapeRange.Left = 150
        .ShapeRange.Height = 200
        . ShapeRange. Width = 250

Ajusta los números hasta que consigas el tamaño que necesitas

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas