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

Forumthread: Bilder dynamisch einfügen/aktualisierem

Bilder dynamisch einfügen/aktualisierem
14.02.2021 17:03:48
Christian
Hallo,
ich möchte in einer Arbeitsmappe, wo ich via einer Formel dynamisch gehaltene Links zu Bildern, _ automatisch aktualisiere und die Bilder anzeigen. Das Löschen vorhandener Bilder mache ich beim Öffnen mit

ActiveWorkbook.Worksheets("test").DrawingObjects.Delete
Und in den Zellen, wo das Bild erscheinen soll, habe ich folgende Formel

=InsertPicFromURL("https://www.test.com/test.png")
(Link ist hier noch nicht dynamisch) welche auf die u.a. Function zugreift:
Function InsertPicFromURL(URL As String) As String
With ActiveSheet.Pictures.Insert(URL)
.Top = Application.Caller.Top + 1
.Left = Application.Caller.Left + 1
.Height = Application.Caller.Height - 2
End With
InsertPicFromURL = ""
End Function
Das Einfügen funktioniert aber nicht automatisch sondern nur wenn ich die Formel mit Enter bestätige - wie kann ich das vollautomatisch dynamisch halten ohne manuell eingreifen zu müssen? Hat hier jemand einen Tipp für mich?
Und kann ich die Größe des Bildes in Pixel vorgeben?
Wäre toll, wenn mir hier jemand helfen würde- Danke!
Lg,
Chris
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bilder dynamisch einfügen/aktualisierem
14.02.2021 17:06:32
Hajo_Zi
Hallo Chris,
schaue hier
http://hajo-excel.de/vba_bild_formel.htm
Falls Link nicht ausgeführt wird:
1. Link kopieren
2. rechte Maustaste neues Fenter.
3. Umschaltstaste drücken und Klick auf den Link
4. STRG+ Link mit Maus aktivieren

Anzeige
AW: Bilder dynamisch einfügen/aktualisierem
14.02.2021 17:22:48
Christian
Hallo Hajo,
vielen Dank für den Link, aber das erscheint mir für meine Bedürfnisse (und Kenntnisse) zu kompliziert.
@ All: Kann man nicht bei einer Function bleiben, die ich in einer Zelle mit einem dynamisch gehaltenen Link platzieren kann und welche nach Ausführen eines Makros, welche die Datenbasis der Bilder-Links aktualisiert (sind in einer eigenen Tabelle abgelegt), dann die Bilder automatisch lädt?
Anzeige
AW: Bilder dynamisch einfügen/aktualisierem
14.02.2021 18:06:29
onur

Function InsertPicFromURL(URL As String) As String
Application.Volatile
With ActiveSheet.Pictures.Insert(URL)
.Top = Application.Caller.Top + 1
.Left = Application.Caller.Left + 1
.Height = Application.Caller.Height - 2
End With
InsertPicFromURL = ""
End Function

Anzeige
AW: Bilder dynamisch einfügen/aktualisierem
14.02.2021 18:37:15
Christian
Hallo onur,
vielen Dank für deinen Tipp - leider werden die Bilder lt. Link aber nicht eingefügt.
Irgendeine Idee an was das liegen könnte?
Lg
AW: Bilder dynamisch einfügen/aktualisierem
14.02.2021 18:43:29
onur
Wie denn, wenn ich nicht die Datei zum Testen habe? Ich brauche zumindest den Link mit dem Bild.
AW: Bilder dynamisch einfügen/aktualisierem
14.02.2021 19:13:04
Christian
Hallo,
sorry - anbei die Beispieldatei: https://www.herber.de/bbs/user/143915.xlsm
Danke schonmal, dass Du Dir das nochmals ansiehst!
Natürlich sind auch andere Lösungsvorschläge willkommen!
Lg
Anzeige
AW: Bilder dynamisch einfügen/aktualisierem
14.02.2021 19:23:38
onur
Ich weiss ja nicht, was DU unter dynamisch verstehst, aber bei jeder Neuberechnung (wenn sich irgend eine Zelle ändert), wir das Bild geladen.
Liegt wohl daran, dass der Link bei dir nicht wirklich dynamisch ist, sondern fest vorgegeben.
AW: Bilder dynamisch einfügen/aktualisierem
15.02.2021 08:10:07
Christian
Guten Morgen!
Im 1. Post habe ich ja geschrieben, dass der Link noch nicht dynamisch ist... Aber ist jetzt verstanden - sorry!
Eine andere Frage, die mir noch viel größere Probleme bereitet - weiß jemand wie der Link zu einem Bild im Google Drive aussehen muss? Das hier funktioniert nicht (Link ist für jeden freigegeben):
=InsertPicFromURL("https://drive.google.com/file/d/1UnJuHjMsDLW_PvZjxr5qgFv7uxz4MVA-/view")
Oder hat man mit Google Drive gar keine Chance das hier zu realisieren?
Danke schonmal für Eure Mühe!
Lg,
Chris
Anzeige
AW: Bilder dynamisch einfügen/aktualisierem
15.02.2021 18:00:21
Christian
Falls es jemanden interessiert - der Link muss so aussehen: https://drive.google.com/u/0/uc?id="hier die ID"&export=download
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Bilder dynamisch in Excel einfügen


Schritt-für-Schritt-Anleitung

Um Bilder in Excel dynamisch einzufügen, kannst du die folgende Vorgehensweise nutzen. Diese Anleitung setzt voraus, dass du mit Excel VBA vertraut bist:

  1. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Modul einfügen: Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)" > Einfügen > Modul.

  3. Code eingeben: Füge den folgenden Code in das Modul ein:

    Function InsertPicFromURL(URL As String) As String
        Application.Volatile
        With ActiveSheet.Pictures.Insert(URL)
            .Top = Application.Caller.Top + 1
            .Left = Application.Caller.Left + 1
            .Height = Application.Caller.Height - 2
        End With
        InsertPicFromURL = ""
    End Function
  4. Bilder löschen: Um bestehende Bilder zu entfernen, füge diesen Code in dein Arbeitsblatt ein:

    ActiveWorkbook.Worksheets("test").DrawingObjects.Delete
  5. Formel in Zelle eingeben: In der Zelle, in der das Bild erscheinen soll, benutze die Formel:

    =InsertPicFromURL("dein-bild-url")
  6. Dynamische Links: Stelle sicher, dass der Link zu deinem Bild dynamisch ist, damit die Bilder bei Änderungen automatisch aktualisiert werden.


Häufige Fehler und Lösungen

  • Bilder werden nicht angezeigt: Stelle sicher, dass der URL korrekt ist und dass das Bild öffentlich zugänglich ist. Ein Beispiel für Google Drive wäre:

    =InsertPicFromURL("https://drive.google.com/uc?id=DEINE_ID&export=download")
  • Bilder werden nicht automatisch geladen: Überprüfe, ob die Funktion Application.Volatile im Code enthalten ist. Diese Zeile sorgt dafür, dass die Funktion bei jeder Neuberechnung ausgeführt wird.


Alternative Methoden

Falls du eine andere Methode bevorzugst, kannst du auch das OLEObject verwenden, um Bilder in Excel zu integrieren:

Sub InsertPicture()
    Dim pic As OLEObject
    Set pic = ActiveSheet.OLEObjects.Add(ClassType:="Forms.Image.1", Link:=False, _
        DisplayAsIcon:=False, Left:=100, Top:=100, Width:=100, Height:=100)
    pic.Object.Picture = LoadPicture("dein-bild-url")
End Sub

Mit dieser Methode kannst du Bilder ebenfalls dynamisch einfügen, jedoch benötigt sie mehr manuelle Anpassungen.


Praktische Beispiele

  1. Einfügen eines Bildes von einer URL:

    =InsertPicFromURL("https://www.example.com/dein-bild.png")
  2. Dynamische Anzeige von Bildern in einer Liste: Wenn du eine Liste von Bild-URLs in Spalte A hast, kannst du in Spalte B die Formel verwenden:

    =InsertPicFromURL(A1)

Tipps für Profis

  • Bildgrößen anpassen: Um die Bildgröße in Pixel vorzugeben, kannst du die .Width und .Height Eigenschaften im VBA-Code anpassen.

  • Automatisierung mit Makros: Erstelle ein Makro, das die Datenbasis der Bild-Links aktualisiert und die Bilder automatisch lädt. So kannst du den Prozess der excel bilder dynamisch einfügen effizienter gestalten.


FAQ: Häufige Fragen

1. Wie kann ich die Größe des Bildes in Pixel vorgeben?
Du kannst die Eigenschaften .Width und .Height im VBA-Code anpassen, um die Größe des Bildes zu steuern.

2. Funktioniert das auch mit Google Drive?
Ja, aber der Link muss in der richtigen Form vorliegen. Nutze diesen Format:

https://drive.google.com/uc?id=DEINE_ID&export=download

3. Was bedeutet Application.Volatile?
Diese Funktion sorgt dafür, dass die Formel bei jeder Neuberechnung von Excel erneut ausgeführt wird, was für die dynamische Aktualisierung von Bildern wichtig ist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige