31.10.2022, 11:40
Hallo Liebe Leute,
ich habe folgendes Problem. Ich habe in Excel eine Liste. Dort sollen in Spalte A Bilder eingefügt werden. Der Bild Pfad steht in Spalte B. Jetzt sollen alle Bilder per Button eingefügt werden über den Bild Pfad.
Dazu habe ich mir schon irgendwie folgenden Makro zusammen gebastelt.
Aber es funktioniert irgendwie nicht und ich weiß nicht warum. Vielleicht kann mir ja helfen.
Vielen Dank
ich habe folgendes Problem. Ich habe in Excel eine Liste. Dort sollen in Spalte A Bilder eingefügt werden. Der Bild Pfad steht in Spalte B. Jetzt sollen alle Bilder per Button eingefügt werden über den Bild Pfad.
Dazu habe ich mir schon irgendwie folgenden Makro zusammen gebastelt.
Code:
Sub Bilder_einfügen()
Dim Pfad As String
Dim strDatnam As String
Dim Wiederholungen As Long
Dim Bildbreite As Long
Dim Bildhöhe As Long
Dim meinBild
Dim maxBildhöhe As Long
'Pfad anpassen
Pfad = "C:\Test\"
'Spalte B ab Zeile 2 durchlaufen
For Wiederholungen = 2 To ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row
'Namen der Bilder stehen in Spalte B - ohne Endung; Einlesen in Variable mit Pfadangaben
strDatnam = Pfad & Cells(Wiederholungen, 2).Value & ".jpg"
'Prüfen, ob Bilddatei im Verzeichnis existiert
If Dir(strDatnam) <> "" Then
'falls ja, dann Bildhöhe und -breite einlesen
Set meinBild = LoadPicture(strDatnam)
Bildbreite = meinBild.Width
Bildhoehe = meinBild.Height
'Bild einfügen, 5 cm Breit - 1 cm = 28,35 pt - und Höhe entsprechend skaliert
ActiveSheet.Shapes.AddPicture strDatnam, msoFalse, msoTrue, Cells(Wiederholungen, 1).Left, Cells(Wiederholungen, 1).Top, 141.75, 141.75 * Bildhoehe / Bildbreite
'maximale Bildhöhe ermitteln, für die Anpassung der Zeilenhöhe
If maxBildhöhe < 141.75 * Bildhoehe / Bildbreite Then maxBildhöhe = 141.75 * Bildhoehe / Bildbreite
Else
'falls nein, wird in Spalte A eine Fehlermeldung geschrieben
ActiveSheet.Cells(Wiederholungen, 1) = "Bild nicht gefunden"
End If
Next
'Zeilenhöhe anpassen
Rows("2:" & ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row).RowHeight = maxBildhöhe + 4
'Spaltenbreite anpassen
Columns("A:A").ColumnWidth = 35
End Sub
Aber es funktioniert irgendwie nicht und ich weiß nicht warum. Vielleicht kann mir ja helfen.
Vielen Dank