Macro insertar imagen desde carpeta externa

Excelente página!
Tengo un archivo en excel donde en la columna B (desde B2) tengo una serie de códigos alfa-numéricos (AAA-22; BB-2D-CBV; ZYZY-ABAA; NNNN; etc.).
En otra carpeta tengo las fotos (jpg) correspondientes a cada uno de esos códigos.

Si es posible, necesito una macro que inserte dicha foto en la columna A (desde A2) para cada código que se presente en la columna B (desde B2) ajustandose al tamaño de la celda.
¿Será posible?

Respuesta
1

Hasta donde he intentado y buscado en la web NO PUEDES INSERTARLA EN UNA CELDA INDIVIDUAL. Sin embargo, existen algunas soluciones para hacer que la imagen se comporte como si fuese parte de la celda.

Estos link te ayudarán a simular lo que quieres:

https://www.youtube.com/watch?v=pvVS6sExsfY de YOUTUBE.COM

y del blog : El Mundo WebM2J

http://webm2j.es/blog/2013/06/insertar-en-una-celda-una-imagen-excel/

1 respuesta más de otro experto

Respuesta
3

H o l a:

Te anexo la macro:

Sub im4()
'Por.Dante Amor
    ruta = "C:\trabajo\varios\"
    For i = 2 To Range("B" & Rows.Count).End(xlUp).Row
        arch = Cells(i, "B") & ".jpg"
        With Cells(i, "A")
            Arriba = .Top
            Izquierda = .Left
            Ancho = .Width
            Alto = .Height
        End With
        '
        If Dir(ruta & arch) <> "" Then
            Set fotografia = ActiveSheet.Pictures.Insert(ruta & arch)
            With fotografia
                .ShapeRange.LockAspectRatio = msoFalse
                .Top = Arriba
                .Left = Izquierda
                .Width = Ancho
                .Height = Alto
            End With
            Set fotografia = Nothing
        End If
    Next
End Sub

Cambia en la macro la carpeta donde se encuentra los archivos jpg en la siguiente línea:

ruta = "C:\trabajo\varios\"

Revisa que tus archivos sean ".jpg", si tus archivos son ".jpeg" no los cargará. Si tienes archivos con diferente extensión, es decir, algunos son jpg y otros son jpeg, avísame para ajustar la macro.


Sub im4()
'Por.Dante Amor
    ruta = "C:\trabajo\varios\"
    For i = 2 To Range("B" & Rows.Count).End(xlUp).Row
        arch = Cells(i, "B") & ".jpg"
        With Cells(i, "A")
            Arriba = .Top
            Izquierda = .Left
            Ancho = .Width
            Alto = .Height
        End With
        '
        If Dir(ruta & arch) <> "" Then
            Set fotografia = ActiveSheet.Pictures.Insert(ruta & arch)
            With fotografia
                .ShapeRange.LockAspectRatio = msoFalse
                .Top = Arriba
                .Left = Izquierda
                .Width = Ancho
                .Height = Alto
            End With
            Set fotografia = Nothing
        End If
    Next
End Sub

S a l u d o s . D a n t e   A m o r. Recuerda valorar la respuesta. G r a c i a s

Muchas gracias Dante.

Efectivamente tengo archivos jpg y jpeg. Por favor ayúdame a modificar la macro.

Te anexo la macro actualizada:

Sub im4()
'Por.Dante Amor
    ruta = "C:\trabajo\varios\"
    For i = 2 To Range("B" & Rows.Count).End(xlUp).Row
        arch = Dir(ruta & Cells(i, "B") & ".jp*")
        If arch <> "" Then
            With Cells(i, "A")
                Arriba = .Top
                Izquierda = .Left
                Ancho = .Width
                Alto = .Height
            End With
            '
            Set fotografia = ActiveSheet.Pictures.Insert(ruta & arch)
            With fotografia
                .ShapeRange.LockAspectRatio = msoFalse
                .Top = Arriba
                .Left = Izquierda
                .Width = Ancho
                .Height = Alto
            End With
            Set fotografia = Nothing
        End If
    Next
End Sub

S a l u d o s . D a n t e   A m o r. Recuerda valorar la respuesta. G r a c i a s

Muchas gracias Dante!!!

Con esta macro puedo ajustar el tamaño de la imagen?

Como lo puedo hacer para que la imagen quede fija en la celda? al ordenar los datos, por ejemplo, de < a > las fotos no se mueven y solo se ordena la columna B, la idea es que también se ordene la foto junto a su código respectivo.

Genero nueva pregunta??

Muchas gracias otra vez!!!

Envía la pregunta para investigar el dato

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas