Das klappte auch super, bis ich jetzt das Problem bekommen habe, dass die Bilder scheinbar nicht proportional an die Zellgröße angepasst werden. Kann man das in Deinem Code anpassen, dass das Bild in seinem Ursprung in die voreingestellte Zellgröße passt? Also ein kleines Produkt bleibt klein, ein großes Produkt wird größer dargestellt. Die Zellgröße soll aber voreingestellt bleiben. Ich habe Dir mal einen screenshot angehängt
Option Explicit Sub Main() Dim objPic As Shape Dim lngRow As Long Dim strFile As String For Each objPic In ActiveSheet.Shapes If Not Intersect(objPic.TopLeftCell, Range("B:B")) Is Nothing Then objPic.Delete End If Next objPic Const cstrPath As String = "C:\Temp\Bilder\" 'Pfad anpassen!!!! With ThisWorkbook.Worksheets("Tabelle1") 'Tabellenname ggfl. anpassen! lngRow = Application.Max(1, .Cells(.Rows.Count, 1).End(xlUp).Row) For lngRow = 2 To lngRow If Not IsEmpty(.Cells(lngRow, 1).Value) Then strFile = Dir(cstrPath & .Cells(lngRow, 1).Value, vbNormal) If strFile <> "" Then With .Shapes.AddPicture _ (cstrPath & strFile, False, True, 0, 0, 0, 0) .LockAspectRatio = msoTrue .Left = .Parent.Cells(lngRow, 2).Left .Top = .Parent.Cells(lngRow, 2).Top .Height = .Parent.Cells(lngRow, 2).Height '.Width = .Parent.Cells(lngRow, 2).Width .Name = "picture" & lngRow End With End If End If Next lngRow End With End Sub
habe das mit Testbilder von mir gemacht. Nun habe ich es mit den Originalen probiert und mein Ursprungscode funktioniert doch. Du musst natürlich ein ähnliches Verhältnis der Zeilenhöhe zur Spaltenbreite haben, wie auch das Bild hat. Wenn die Zelle rechteckig ist klappt das nicht.
[attachment=20888]
Sieht für mich ganz passabel aus (ist mit meinem Ursprungscode gemacht). :21:
da werde ich dann wohl mit probieren müssen, ob die voreingestellte Spaltenbreite und -höhe zu den Produkten passt und die Anzeige halbwegs funktioniert.
besten Dank. Leider auch hier nicht das gewünschte Ergebnis - die Bilder werden zwar größenmäßig angepasst, die Zellgröße dann aber nicht. Sieht so aus als müssten wir den Bilderjob bei der Masse an Bildern doch mit Indesign regeln.
Du könntest auch die Bilder mit z. B. "IrfanView" über die Batchfunktion mit wenigen Klicks auf eine bestimmte Größe bringen und dann einfügen. "IrfanView" lässt sich über die Kommandozeile auch per VBA steuern. :21: