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.
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: