Guardar archivo de Excel con fotos importadas

Dante, hace unos 3 meses me enviaste una macro para traer de una carpeta a un libro de Excel una serie de fotos. Me funciono de maravilla, pero cuando guardo el libro y lo quiero abrir para ver nuevamente las fotos, solo me trae los nombres pero no la fotos. Que debo hacer o como debo guardar o en que formato, el archivo para que cada que lo quiera ver lo pueda abrir sin problemas.

Esta fue la macro que enviaste

Sub PonerFotos()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Set l1 = ThisWorkbook
    Set H1 = l1.Sheets("Hoja1")
    H1.Cells.Clear
    H1.DrawingObjects.Delete
    ruta = l1.Path & "\"
    ChDir ruta
    '
    Set fldr = Application.FileDialog(msoFileDialogFolderPicker)
    With fldr
        .Title = "Selecciona una carpeta"
        .AllowMultiSelect = False
        .InitialFileName = ruta
        If .Show <> -1 Then Exit Sub
        cp = .SelectedItems(1)
    End With
    '
    ChDir cp & "\"
    archi = Dir("*.*")
    j = 2
    Do While archi <> ""
        On Error Resume Next
        Set fotografia = ActiveSheet.Pictures.Insert(archi)
        With fotografia
            '.Name = "foto de la imagen"
            .ShapeRange.LockAspectRatio = msoFalse
            .Top = Cells(j, "B").Top
            .Left = Cells(j, "B").Left
            .Width = Cells(j, "B").Width
            .Height = Cells(j, "B").Height
            '.ShapeRange.ScaleHeight 0.25, msoTrue
            '.ShapeRange.ScaleWidth 0.25, msoTrue
            Cells(j, "A") = archi
            j = j + 1
        End With
        Set fotografia = Nothing
        archi = Dir()
    Loop
    Application.ScreenUpdating = True
    MsgBox "Terminado"
End Sub

1 respuesta

Respuesta
1

¿Qué versión de excel tienes?

¿Cambiaste de versión?

¿En alguna computadora se ve ven las imágenes y alguna otra computadora ya no se ven?

Qué extensión tienen las imágenes, prueba con jpeg o bmp y revisa cuál de las 2 sí permanece en el archivo.

Dante, la version de excel es 2010 y el formato es jpeg con dimensiones 4000 x 2248 y aproximadamente 2000KB.

En mi computadora de escritorio que es intel core I7 con 8MB de RAM se ven perfecto despues de que corro la macro, pero guardo el archivo en formatos xlsm, xlsx y xls y luego cuando abro cualquiera de estos archivos no me muestra las fotos. Sera que son muy pesadas, debo reducir el tamaño?. Hice una prueba importando las fotos desde excel y asi si me las guarda en el archivo, pero como son mas de 300 seria muy tedioso y demorado la pegada de estas fotos en la hoja

ojo en cada celda donde estaban las fotos importadas me muestra el siguiente error:

"No se puede mostrar la imagen vinculada. Puede que se haya movido, cambiado de nombre o eliminado el archivo.Compruebe que el vinculo señala el archivo y ubicaciones correctos"

MIL GRACIAS DANTE

Es por la versión 2010, en la versión 2007 si te guarda la imagen.

Intenta reducir el tamaño de la imagen y guardar la imagen con otra extensión, por ejemplo bmp, revisa cuál es la que si se almacena.

Dante mil gracias por esta y la otra respuesta de renombrar celdas que me funciono perfecto. Con esta respuesta tengo el problema de la version de excel que no tengo la 2007. Y cambiarle el formato a las fotos seria complicado por la cantidad de fotos y que cada momento me llegan muchas fotos a las que debo hacer el mismo proceso de crear el archivo. ¿No hay otra solución?, o como podría cambiar el formato a un grupo numeroso de fotos de jpeg a bmp

Gracias y ya te valoro la otra respuesta

Diego

Es un problema de la versión 2010, en cuanto al formato, tendría que ser una por una con alguna herramienta de dibujo.

Prueba esta macro, te va a poner las imágenes dentro de un control Activex Image

Sub PonerFotos()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Set l1 = ThisWorkbook
    Set h1 = l1.Sheets("Hoja1")
    h1.Cells.Clear
    On Error Resume Next
    h1.OLEObjects.Delete
    h1.DrawingObjects.Delete
    'On Error GoTo 0
    ruta = l1.Path & "\"
    ChDir ruta
    '
    Set fldr = Application.FileDialog(msoFileDialogFolderPicker)
    With fldr
        .Title = "Selecciona una carpeta"
        .AllowMultiSelect = False
        .InitialFileName = ruta
        If .Show <> -1 Then Exit Sub
        cp = .SelectedItems(1)
    End With
    '
    ChDir cp & "\"
    archi = Dir("*.jpg")
    j = 2
    Do While archi <> ""
        Set t = h1.Cells(j, "B")
        With h1.OLEObjects.Add(ClassType:="Forms.Image.1", Link:=False, _
            DisplayAsIcon:=False, Left:=t.Left, Top:=t.Top, Width:=t.Width, Height:=t.Height)
            With .Object
                .Picture = LoadPicture(archi)
                .PictureSizeMode = fmPictureSizeModeStretch
            End With
        End With
        archi = Dir()
        j = j + 1
    Loop
    Application.ScreenUpdating = True
    MsgBox "Terminado"
End Sub

Te va a crear en automático un Image por cada imagen:

Dante ahora si me muestra las fotos después de guardarlas pero no me deja moverlas, borrarlas ni editarlas como dices. Que debo hacer? necesito que pueda mover y manipular las 200 o 300 fotos que importe de la carpeta a la hoja de excel

En el menú Programado, presiona el botón "Modo Diseño", ahora sí, puedes seleccionar las imágenes.

¡Gracias!  Dante excelente tu apoyo y tu conocimiento del Excel

Dante que pena pero no me muestra el modo diseño porque no puedo seleccionar la foto, lo único que puedo hacer es pararme encima de la celda donde esta la foto y escribir cualquier cosa pero esto queda por debajo de la foto,que será?

Me tocara conseguir el Excel 2007?

Entra al botón de Office, Opciones de excel, Más frecuentes, habilita la opción: Mostrar ficha programador en la cinta de opciones.

Recuerda cambiar la valoración a la respuesta.

¡Gracias! Dante, ahora si me funciono

Como te valoro?

Al final de la pregunta existen 2 valoraciones (un voto o Excelente)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas