Pagar fotos de carpeta en hoja de excel con formulas o macro.

Manejo muchas fotos en una carpeta que quisiera traer a una hoja de excel asi: que me coloque la fotos x ejemplo en la columna (B) celda x celda y que en la celda adyacente de la columna (A) coloque el nombre de la misma. Luego de tenerlas aqui (Hoja 1) poder hacer una formula en otra hoja (2) del libro y me traiga la foto de la Hoja (1). Se podria traer la foto con "buscarv()", ¿o cómo lo podria hacer?

1 respuesta

Respuesta
3

Te anexo la macro para poner todas las fotos que tengas en una carpeta en la "hoja1"

Cuando ejecutes la macro, selecciona la carpeta en donde tienes las fotos.

Te sugiero que antes de que ejecutes la macro, pongas el alto de todas las filas del tamaño que quieres la imagen, también ajusta el ancho de la columna B.

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


Sigue las Instrucciones para ejecutar la macro
1. Abre tu archivo 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. Para ejecutarla presiona F5

Para poner la foto en la hoja2 valora esta pregunta y crea una nueva pregunta para enviarte la macro correspondiente.

Saludos. Dante Amor

Dante buenas tardes, excelente respuesta, pero quisiera si te es posible me ayudes a seguir con esto:

Una vez ejecutada la macro y traídas las fotos, como hago para que en una hoja adyacente yo pueda colocar una fórmula y/o una macro que por ejemplo en la celda B3 yo coloque una validación con el listado de las referencias o nombres de las fotos y me la muestre en la celda C3 después de escogida la foto XX.

¿Mil gracias y evalúo la 1a respuesta ya o después de la próxima respuesta?

Ahora crea una nueva pregunta en el tema de microsoft excel para la siguiente petición.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas