Paso 5:Si hay otra imagen de la misma familia entonces ponerla en la columna M y así con todos los ean de esa familia.

Nuevamente siguiendo con la macro que el amigo Dante Amor me está formando para hacer un catálogo en excel y con fotografías, damos un pasito más.

Nos encontramos con el siguiente obstáculo a salvar: Para cada EAN encontrado, tiene que buscar una imagen en un archivo. Pero la búsqueda del archivo no es tan simple, deberá buscar en cada archivo si el número de EAN existe dentro del nombre del archivo.

1 Respuesta

Respuesta
1

Reviso la información y te envío la macro actualizada.

Te anexo la macro completa

Sub InsertarFotos()
'Por.Dante Amor
    '
    ruta = ThisWorkbook.Path & "\"
    ChDir ruta
    '
    Sheets("IMS 180215").Select
    ActiveSheet.DrawingObjects.Delete
    Application.ScreenUpdating = False
    Columns("L:BZ").ClearContents
    Columns("L:BZ").ColumnWidth = 25
    '
    u = Range("B" & Rows.Count).End(xlUp).Row
    For i = 2 To u
        If InStr(1, Cells(i, "B"), "FAMILIA") > 0 Then
            fila = i
            inicial = i + 1
            Final = 0
            For m = inicial To u
                If InStr(1, Cells(m, "B"), "FAMILIA") > 0 Then
                    Final = m - 2
                    Exit For
                End If
            Next
            If Final = 0 Then Final = u
            imagen = False
            col = 12
            nimagen = 0
        End If
        If imagen = False Then
            For Each c In Range("G" & inicial & ":K" & Final)
                '
                unaimagen = False
                nombre = c.Value
                If c.Value <> "" Then
                    archivos = Dir("*.*")
                    Do While archivos <> ""
                        If InStr(1, archivos, c.Value) > 0 Then
                        If imagen <> "" Then
                        If InStr(1, imagen, ".xls") = 0 Then
                            imagen = archivos
                            On Error Resume Next
                            Set etiqueta = ActiveSheet.Pictures.Insert(archivos)
                            With etiqueta
                                .ShapeRange.LockAspectRatio = msoFalse
                                .Left = Cells(fila, col).Left
                                .Top = Cells(fila, col).Top
                                .Height = Range(Cells(fila, col), Cells(fila + 5, col)).Height 'alto imagen
                                .Width = Cells(fila, col).Width 'ancho imagen
                            End With
                            On Error GoTo 0
                            col = col + 1
                            nimagen = nimagen + 1
                            Exit Do
                        End If
                        End If
                        End If
                        archivos = Dir()
                    Loop
                End If
            Next
        End If
    Next
    Application.ScreenUpdating = True
    MsgBox "Imágenes actualizadas", vbInformation
End Sub

¡Gracias!

Que currazo.

Gracias mil.

Funciona de maravilla.

Solo un aspecto a mejorar. Las fotos, supongo que por que le damos una estructura de anchura y altura, quedan algunas desenfocadas, o achatadas, al obligarles a tener unas medidas especiales (juraría que es por eso).

No importa si para que la imagen salga del todo bien, que alguna foto sea más alta o ancha que otra.

Saludos y de nuevo mil gracias.

Que envidia saber hacer estas cosas

Jorge

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas