Clever-Excel-Forum

Normale Version: Bilder über Makro einfügen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
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. 


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
Hi,

du musst Beeblebrox auf 42 setzen und darfst dein Handtuch nicht vergessen.

Don't panic!
derHöpp

Und im Ernst: mit deiner Fehlerbeschreibung lässt sich nichts anfangen.
Hallo Bscholz1510,

im Beispiel noch mit Zusatz-Makro Bild Klein, Groß, Klein.
Ich füge alle vorhandenen Bilder in die Spalte A ein, bei klick auf das Bild wird es vergrößert, auf das angegebene Maß im 2. Makro.

Die Bilder werden immer innerhalb der Zellen der Spalte A eingepasst.
Bei klick auf das Bild, wird dies am oberen Tabellenrand vergrößert angezeigt und beim klick auf das große Bild, wird dieses Bild, wieder in die Ausgangszelle eingepasst.

Du kannst dir die benötigten Daten auch aus der Musterdatei entnehmen und in dein Makro einfügen.

Hallo Bscholz1510,

auch in den Excel-Optionen, deine Bildqualität anpassen.
Eine der Einstellungen, beide Einstellungen funktionieren auch, Häkchen und 330 ppi