Bilder Einfügen

Bilder mit Excel VBA in Zelle einfügen (und formatieren)

Ich zeige dir Schritt für Schritt wie du ein Tool erstellst, das automatisiert Bilder aus einem Ordner in eine Excel Zelle einfügt.

Bild in Excel einfügen

Schritt 1: Excel Tabelle vorbereiten

Um Bilder in Excel einzufügen, musst du eine Spalte in deiner Tabelle mit den Bildlinks einfügen. Diese Links entsprechen dem Pfad des jeweiligen Bildes, den du am einfachsten per Shift + Rechtsklick erhältst.

Übersicht Als Pfad kopieren

Schritt 2: Einfügen eines Bildes

Den Bildpfad der jeweils aktiven Zeile speicherst du per VBA in eine Variable und prüfst mit der Dir() Funktion, ob das Bild tatsächlich vorhanden ist. Das Bild kannst du dann mit der Pictures.Insert Methode auf dem Tabellenblatt einfügen.

				
					Sub Bild_Einfuegen()

Dim Bildpfad As String

'Bildpfad auslesen
Bildpfad = Tabelle1.Range("G" & ActiveCell.Row).Value

'Existiert die Bilddatei?
If Dir(Bildpfad) <> "" Then

'Bild einfügen
Tabelle1.Pictures.Insert(Bildpfad)

End If

End Sub
				
			

Schritt 3: Bild Name, Größe und Position anpassen

Jetzt geht es darum das Bild per Code zu benennen, sodass du in weiterer Folge einfach per Name darauf zugreifen kannst.

Dann legst du die Größe und Position des Bildes fest, sodass es genau da angezeigt wird, wo du es haben möchtest. In diesem Beispiel soll das Bild „Teppich“ heißen, 85 Pixel hoch sein und in Zelle G2 eingefügt werden.

				
					Sub Bild_Einfuegen()

Dim Bildpfad As String

'Bildpfad auslesen
Bildpfad = Tabelle1.Range("G" & ActiveCell.Row).Value

'Existiert die Bilddatei?
If Dir(Bildpfad) <> "" Then

    'Bild einfügen
    With Tabelle1.Pictures.Insert(Bildpfad)
        .Height = 85 'Tabelle1.Range("G2").Height
        .Name = "Teppich"
    End With
    
    With Tabelle1.Shapes("Teppich")
        .Top = Tabelle1.Range("G2").Top
        .Left = Tabelle1.Range("G2").Left
    End With

End If

End Sub

				
			

Schritt 4: Löschen eventuell vorhandener Bilder

Um sicherzustellen, dass eventuell bestehende Bilder mit der Bezeichnung Teppich gelöscht werden, musst du eine Löschfunktion zu Beginn der Prozedur einfügen. Da diese einen Fehler geben würde, wenn kein Bild vorhanden ist, lässt du die Codezeile mit dem Error Handler überspringen.

				
					'Bild löschen, falls vorhanden

On Error Resume Next
Tabelle1.Shapes("Teppich").Delete
On Error GoTo 0

				
			

Schritt 5: Makro ausführen bei Klick in die Tabellenzeile

Das Makro kannst du automatisiert ausführen lassen, sobald in eine Zelle der Tabelle geklickt wird.

				
					Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Not Intersect(Target, Tabelle1.ListObjects("Produkte").DataBodyRange) Is Nothing Then
    
    Call Bild_Einfuegen

End If

End Sub

				
			

Um VBA zu lernen und besser zu verstehen, empfehle ich dir mein kostenloses Grundlagentraining, in dem ich dir die ersten Schritt in Excel-VBA zeige.

Ich hoffe dieses Tutorial hilft dir dabei, deine Anwendungen professionell und benutzerfreundlich zu gestalten.

Melde dich gerne für meinen Newsletter an und erhalte regelmäßig Tipps & Tricks rund um das Thema Excel VBA!

Teile diesen Beitrag

Empfehlungen für dich

VBATrainer Excel VBA Coaching - Lagerverwaltung

Sichere dir jetzt meine kostenlose Lagerverwaltungs-Anwendung