Excel VBA - Fotos in Tabelle einbetten / in UserForm anzeigen?
Hallo Zusammen
Ich möchte folgendes in einem Excel machen:
In Tabelle1 habe ich mehrere Zeilen die so aufgebaut sind: Spalte A = Nummer (01-99), Spalte B = Bild, Spalte C = Beschreibung, etc.
Das Bild in Spalte B möchte ich einbetten. Oder so einfügen, dass ich es z.B. in Tabelle2 mit "=Tabelle1!B2" anzeigen kann. Wie kann ich das Bild am besten hinterlegen? Ich habe schon die Bilder mit der ALT-Taste in die Zelle gezogen resp. in den Einstellungen eingestellt, dass sie "Von Zellposition- und Grösse abhängig" sind. Das hat aber nicht funktioniert.
Des weiteren möchte ich dann in einem UserForm eine ComboBox haben, mit den Nummern in Tabelle1. Sobald eine Nummer ausgewählt wurde, sollen daneben das Bild (Spalte B) und die Beschreibung (Spalte C) angezeigt werden. Wie diese Infos dann weiterverarbeitet werden, habe ich bereits vorbereitet.
Bei den Bildern habe ich die Tabelle1 und das UserForm grob dargestellt.
Vielne Dank,
Michael
4 Antworten
Ein Bild welches du über "Grafik" einfügen in Excel ablegst wird als
OLE Object hinterlegt.
Man kann nun über VBA auf diese OLE Objekte zugreifen.
Doch was muss man tun:
1 Das OLE Object auf den Rechner kopieren um dann in der UserForm wieder reinzuladen.
Also belasse es bei den Hinweisen der anderen.
Merke die nur den Pfad in Excel und lass per iteration die Bilder in der UserForm laufen. Wenn nötig habe ich dir den Code dafür.
Lässt sich auch in ein HTML für ne WebSeite ergänzen.
Wie Mauritan schon erwähnt hat ist das unpraktikabel, da du das Bild in der Zelle nicht als Pfad zu einer Bilddatei hast sondern die Exceltabelle nur aufgeblasen wird mit unnötig vielen Daten, die du nicht in ein Imagefeld als Picture einfügen kannst.
Wenn es Pfade zu Bildern sind kannst du sie im Userform anzeigen lassen.
Habs probiert, ein Image aus Range("A1").Value zu lesen geht nicht.
Wenn du es unbedingt in der Tabelle sehen willst gib eine weitere Spalte an mit dem Pfad zum Bild.
Hallo,
z.B. in Tabelle2 mit "=Tabelle1!B2" anzeigen kann.
eine Grafik per Zellbezug zu übernehmen ist, soweit ich weiß, nicht möglich. Am nächsten daran kommt das Einfügen einer verknüpften Grafik (Zelle über der die Grafik liegt auswählen, kopieren-> Inhalte einfügen -> verknüpfte Grafik) /das Kamera-Werkzeug (muss erst manuell zu Menüband/Schnellzugriffsleiste hinzugefügt werden unter Datei-> Optionen-> Menüband anpassen)
ComboBox
mit einer Combobox habe ich bisher noch nicht gearbeitet, auf dem Tabellenblatt selbst geht was du vorhast so:
In Spalte G sind es normale Bilder, das Bild in B2 ist eine verknüpfte Grafik. Den Bezug der Grafik habe ich zu dem definierten Namen "Artikelbild" geändert, der die Formel
=WENN(Tabelle1!$A$2="";Tabelle1!$A$3;INDEX(Tabelle1!$F$2:$I$10;VERGLEICH(Tabelle1!$A$2;Tabelle1!$F$2:$F$10;0);2))
enthällt. Dabei müssen allerdings die Bilder in Spalte G nur oberhalb einer einzelnen Zelle liegen, wenn auch nur ein Pixel mit einer anderen überlappt, kommt es zum Fehler "Bezug ungültig"
Eventuell kannst du das auf die Combobox übertragen (oder unsauber die so erstellte dynamische Grafik über die Box legen)
![- (Computer, programmieren, Microsoft Excel)](https://images.gutefrage.net/media/fragen-antworten/bilder/365056139/0_big.png?v=1598440777000)
Bitte mach' das nicht in Excel. Das ist extrem viel Arbeit und das Ergebnis wird stets unbefriedigend bleiben von den Bildgrößen, der Auflösung und der Unhandlichkeit der Datei her.
Bette besser Links auf die Bilder ein.
Nein, dann werden sie nicht angezeigt, doch das ist besser so.
Willst Du unbedingt eine Bild-Anzeige, wähle pdf. Oder eine Datenbank, etwa Access.