Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Bilder aus Ordner in Zelle

Forumthread: Bilder aus Ordner in Zelle

Bilder aus Ordner in Zelle
07.03.2025 11:51:15
Marcus Wuttke
Hallo und schönen guten Morgen,
ich hoffe es geht euch allen gut, das Frühstück war lecker und Ihr könnt mir jetzt gestärkt bei meinem Problem helfen.

Ich möchte gerne aus einem Ordner von Laufwerk "G" Bilder in eine Excel-Datei, Register 2 "Willkommen" in eine Zelle laden.

Ich treffe hierbei eine Auswahl aus einer Liste und der Pfad zum Bild erscheint in Zelle "AP5". Dieser Pfad aus "AP5", hier z.B.:
"G:\Allgemein\Winter\Bilder\Bild_0040809.jpg" soll im Bereich "O34:V44" als Bild passend angezeigt werden.
Wenn sich der Pfad dann ändert soll das alte Bild gelöscht und das neue Bild eingefügt werden.

Hat jemand eine Idee?

Grüße, Marcus
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bilder aus Ordner in Zelle
07.03.2025 12:59:54
{Boris}
Hi,

hab mal die KI hier gefragt mit:

Ich möchte Bilder, die einzeln in einem Ordner liegen, in ein Arbeitsblatt laden und als Bild in Zelle einfügen. Die Pfade zu den Bildern stehen in Spalte E ab E2. Die Bilder sollen in Spalte D erscheinen. Wie geht das mit VBA?

Folgende Antwort (nicht getestet, da grad nur am Handy):

Sub BilderInZellenEinfügen()

Dim ws As Worksheet
Dim rng As Range, cell As Range
Dim BildPfad As String
Dim shp As Shape
Dim ZielZelle As Range
Dim BildLinks As Double, BildOben As Double, BildBreite As Double, BildHöhe As Double

' Arbeitsblatt setzen (aktives Blatt oder explizit benennen)
Set ws = ActiveSheet

' Bereich mit den Bildpfaden in Spalte E bestimmen (ab E2)
Set rng = ws.Range("E2:E" & ws.Cells(ws.Rows.Count, 5).End(xlUp).Row)

' Alle bestehenden Bilder löschen (optional)
For Each shp In ws.Shapes
If Not Intersect(shp.TopLeftCell, ws.Range("D:D")) Is Nothing Then
shp.Delete
End If
Next shp

' Schleife durch alle Zellen mit Bildpfaden
For Each cell In rng
BildPfad = cell.Value

' Prüfen, ob die Datei existiert
If Dir(BildPfad) > "" Then
' Zielzelle in Spalte D (gleiche Zeile)
Set ZielZelle = ws.Cells(cell.Row, 4)

' Bild einfügen
Set shp = ws.Pictures.Insert(BildPfad)

' Position & Größe setzen (Zelle ausfüllen)
With shp
.LockAspectRatio = msoFalse ' Seitenverhältnis nicht beibehalten
.Left = ZielZelle.Left
.Top = ZielZelle.Top
.Width = ZielZelle.Width
.Height = ZielZelle.Height
End With
End If
Next cell

MsgBox "Bilder wurden erfolgreich eingefügt!", vbInformation
End Sub


VG Boris
Anzeige
AW: Bilder aus Ordner in Zelle
07.03.2025 20:26:49
daniel
Hi
erstmal manuell folgendes machen (einmalig notwendig)

1. ActiveX-Steuerlement "Bild" anlegen und über die gewünschten Zellen platzieren
2. Element anklicken und über Kontextmenü - Eigenschaften folgende Einstellungen machen (Entwurfsmodul muss aktiv sein):
PictureAlignment: 2 (Center)
PictureSizeMode: 3 (Zoom) (Zoom: Bild wird unverzerrt verkleinert, ggf graue Randbereiche, Strech: Bild wird auf Elementgröße gebracht und dabei ggf verzerrt)
Backcolor: Randfarbe (Relevant bei Zoom) oder Backstyle auf Transparent (kein grauer Rand bei Zoom)
BorderColor (naja, selbsterklärend)

wenn du das Steuerelement eingerichtet hast, kannst du das Bild per einfachem Code zuweisen:

Sheets("Tabelle1").Image1.Picture LoadPicture(Range("AP5").value)


den Code kannst du dann einem Button zuweisen oder über das Change-Event oder Calculate-Event automatisch auslösen lassen (je nachdem wie der Wert in AP5 zustande kommt)


Gruß Daniel
Anzeige
AW: Bilder aus Ordner in Zelle
07.03.2025 20:43:28
Marcus
Hallo Daniel,
das ist mal eine ganz andere Rangehensweise, vielen Dank, werde ich auf jeden Fall mal ausprobieren.
Die Datei ist aber auf meinem Arbeitsrechner, aber jetzt ist Wochenende.
Grüße, Marcus
AW: Bilder aus Ordner in Zelle
07.03.2025 14:54:15
Marcus Wuttke
Hallo Boris,

vielen Dank, leider nicht das gewünschte Resultat.

Hab auch schon ein wenig mit KI probiert, allerdings bis jetzt kaum was Brauchbares rausbekommen.

Allenfalls kann man en paar Schnipsel aus dem Code gebrauchen. :)

Ich bleib aber dran und finde noch die Lösung...
Anzeige
AW: Bilder aus Ordner in Zelle
07.03.2025 16:08:00
Marcus Wuttke
Habe jetzt selbst mal ChatGPT ausgenutzt, war eine gute Idee, und einfach meine Anfrage hier dort reinkopiert. Das kam dabei raus und klappt
sogar nach ein paar wenigen Anpassungen.

Sub BildEinfügen()

Dim BildPfad As String
Dim Bild As Picture
Dim Zelle As Range
Dim ZellenBreite As Double
Dim ZellenHoehe As Double
Dim SkalierungsFaktor As Double

' Den Pfad aus Zelle AP5 holen
BildPfad = Range("AP5").Value

' Überprüfen, ob der Pfad gültig ist
If Dir(BildPfad) > "" Then
' Löschen des alten Bildes, wenn vorhanden
If Not LastImage Is Nothing Then
LastImage.Delete
End If

' Das Bild in den Bereich O34:V44 einfügen
Set Zelle = Range("O34:V44")
ZellenBreite = Zelle.Width
ZellenHoehe = Zelle.Height

SkalierungsFaktor = 1

' Bild einfügen und passend skalieren
Set Bild = ActiveSheet.Pictures.Insert(BildPfad)
With Bild
' Bildgröße anpassen
.ShapeRange.LockAspectRatio = msoFalse
.Top = Zelle.Top
.Left = Zelle.Left
.Width = ZellenBreite - SkalierungsFaktor
.Height = ZellenHoehe - SkalierungsFaktor
End With

' Das eingefügte Bild speichern, um es beim nächsten Mal löschen zu können
Set LastImage = Bild
Else
MsgBox "Leider kein Bild vorhanden!", vbExclamation
End If
End Sub


und damit alles von allein läuft:

Private Sub Worksheet_Change(ByVal Target As Range)

Call BildEinfügen
End Sub


Euch allen ein schönes Wochenende.... :)
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige