Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1252to1256
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Autom. Verlinkung zu Bilddateien

Autom. Verlinkung zu Bilddateien
Mike
Hi Ihr,
mal wieder eine Frage an die Ex(cel)perten: :-)
Ich habe eine Tabelle mit mehreren hundert Einträgen, die in Spalte C die jeweilige Artikelbezeichnung enthält und zu jedem dieser Artikel eine Bilddatei mit exakt dem gleichen Titel in einem Ordner auf einem Laufwerk (alle Bilddateien sind im gleichen Ordner gespeichert).
Problem:
Wie ich Hyperlinks in Excel verwende, weiss ich, was ich allerdings hier gerne hätte ist, dass beim Klick auf eine der Artikelbezeichnungen in Spalte C das Bild nicht in einem Extra-Programm geöffnet wird (bei mir öffnet sich hier immer automatisch Photoshop), sondern dass die Bilder in einem fest vorgegebenen Fenster bzw. Zelle innerhalb von Excel angezeigt werden, so dass die Anzeige etwas schneller geht und ich selbst festlegen kann, wie groß das Bild angezeigt werden soll.
Frage:
Wisst Ihr, wie so etwas möglichst einfach über VBA gelöst werden kann, ohne dass ich für jeden einzelnen Link das entsprechende Bild aufwendig definieren muss ?
Ich dachte mir, wenn die Bilder alle genau wie die Artikel bezeichnet sind + sich alle Bilder im gleichen Ordner befinden, muss sich das doch irgendwie per Code automatisiern lassen ? :-(
Bin Euch für jeden Tipp dankbar !
VG,
Mike
AW: Autom. Verlinkung zu Bilddateien
16.03.2012 08:32:58
Beverly
Hi Mike,
meinst du do etwas:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim varBild
If Target.Column = 3 Then
If Target.Count = 1 Then
If Target  "" Then
If Dir("D:\Eigene Dokumente\Eigene Bilder\" & Target.Value & ".jpg")  "" Then
If ActiveSheet.Pictures.Count > 0 Then ActiveSheet.Pictures(1).Delete
Set varBild = ActiveSheet.Shapes.AddPicture("D:\Eigene Bilder\" & _
Target & ".jpg", True, True, Range("E4").Left, Range("E4").Top, 160, 120)
Set varBild = Nothing
End If
End If
End If
End If
End Sub



Anzeige
AW: Autom. Verlinkung zu Bilddateien
16.03.2012 21:46:50
Mike
Hi Beverly,
vielen Dank für Deine Hilfe - der Code sieht super aus ! :-)
Kannst Du mir noch erklären, wie ich jetzt die jeweiligen Bilder zu den Begriffen angezeigt bekomme ?
Da immer nur eines angezeigt werden soll, könnte ich z.B. ein X in Spalte B als Auslöser für die Anzeige verwenden ?
Sorry, aber da ich mit VBA ziemlich am Anfang stehe, wäre es klasse, wenn Du mir auch noch sagen könntest, wo dieser Code hinkopiert werden muss, in ein Modul oder in das Tabellenblatt direkt und wie ich ihn starten kann (bei meinen ersten Versuchen hat sich gar nichts getan).
Viele Grüße aus Irland und nochmals vielen Dank im Voraus,
Mike
Anzeige
AW: Autom. Verlinkung zu Bilddateien
17.03.2012 07:55:20
Beverly
Hi Mike,
den Code musst du ins Codemodul des Tabellenblattes kopieren. Er macht folgendes: bei Klick auf eine Zelle in Spalte C wird das betreffende Bild, dessen Name in der Zelle steht, mit der linken oberen Ecke auf Zelle E4 liegend eingefügt.


AW: Autom. Verlinkung zu Bilddateien
17.03.2012 22:33:26
Mike
Hallo Beverly,
vielen Dank für Deine Antwort !
Es passiert leider nach wie vor gar nichts bei mir. :-(

Kann es vielleicht an folgendem liegen ?

1. Der Code oben enthält zwei unterschiedliche Pfade, einmal den langen inkl. "Eigene Dokumente" und einmal ohne - müsste das bei mir nicht zwei Mal der gleiche Pfad sein, und zwar zu dem Ordner in dem die Bilder gespeichert sind ?
2. Auch der entsprechende Code-Teil ist zwei Mal leicht unterschiedlich, einmal heißt es "Target.Value" und einmal nur Target. Ist das bewusst so gewählt ?
3. Den Code habe ich in ein Modul kopiert. Muss ich dazu evtl. noch "Option Explicit" im Tabellenblatt selbst eintragen ?
Bitte entschuldige die vielen Fragen, ich dachte nur, ich kann es so vielleicht etwas grenzen..
Viele Grüße und nochmal vielen Dank im Voraus,
Mike

Anzeige
AW: Autom. Verlinkung zu Bilddateien
18.03.2012 08:21:46
Beverly
Hi Mike,
zu 1.: der Pfad muss an beiden Stellen natürlich identisch sein (da hatte ich bei der Verkürzung der Codezeile - damit hier im Beitrag kein unerwünschter Zeilenumbruch angezeigt wird - einen Teil des Pfades weggelöscht und bei der anderen Codezeile vergessen, dasselbe zu tun)
zu 2.: .Value ist die Standardeigenschaft der Zelle und kann weggelassen werden
zu 3.: dass der Code ins Codemodul des Tabellenblattes gehört, hatte ich bereits in meinem vorhergehenden Beitrag geschrieben - also Rechtsklick auf den Tabellenreiter -&gt Code anzeigen -&gt Code ins rechte Codefenster kopieren
Option Excplict ist nicht erforderlich, damit ein Code funktioniert, allerdings ist es eine außerordentlich gute Programmierhilfe, da es zwingend eine Variablendeklaration erfordert (falls man Variablen im Code benutzt) - dadurch wird verhindert, dass Variablen im Code falsch benutzt werden und somit der Code zu falschen Ergebnissen führen könnte.
Zitat aus der VBA-Hilfe:
Mit Option Explicit vermeiden Sie falsch geschriebene Namen bereits bestehender Variablen oder Verwechslungen im Code bei unklarem Gültigkeitsbereich von Variablen.
Aus diesem Grund ist es günstig, wenn man den VBA-Editor so einstellt, dass Option Explicit automatisch an den Anfang eines Codemoduls geschrieben wird. Diese Eistellung findet man im VBA-Editor unter Extras -&gt Optionen -&gt Reiter: Editor und dort "Variablendeklaration erforderlich" aktivieren.


Anzeige
AW: Autom. Verlinkung zu Bilddateien
18.03.2012 08:44:42
Mike
Hallo Beverly,
es klappt !!! :-)
Vielen vielen Dank - das ist super so und genau, wonach ich gesucht habe !
Ist echt eine riesen Hilfe.
Viele Grüße aus Irland und Dir einen schönen Sonntag,
Mike
AW: Autom. Verlinkung zu Bilddateien
18.03.2012 08:55:11
Mike
Hi Beverly,
sorry, beim Ausprobieren ist mir nun doch noch eine Frage gekommen: :-)
Gibt es auch eine Möglichkeit, das zuvor angezeigte Bild per Code zu löschen ?
- Variante 1: Beim Klick auf einen Eintrag, zu dem kein Bild gespeichert ist.
- Variante 2: Per Makro.
Wäre genial, wenn Du dazu auch noch eine Idee hättest.
Viele Grüße,
Mike
AW: Autom. Verlinkung zu Bilddateien
18.03.2012 09:32:31
Beverly
Hi Mike,
dieser erweiterte Code löscht ein eingefügtes Bild bei Klick in eine beliebige Zelle, die nicht in Spalte C liegt:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim varBild
If Target.Column = 3 Then
If Target.Count = 1 Then
If Target  "" Then
If Dir("D:\Eigene Bilder\" & Target & ".jpg")  "" Then
If ActiveSheet.Pictures.Count > 0 Then ActiveSheet.Pictures(1).Delete
Set varBild = ActiveSheet.Shapes.AddPicture("D:\Eigene Bilder\" & _
Target & ".jpg", True, True, Range("E4").Left, Range("E4").Top, 160, 120)
Set varBild = Nothing
End If
End If
End If
Else
' Bild löschen wenn nicht in Spalte C geklickt wird
If ActiveSheet.Pictures.Count > 0 Then ActiveSheet.Pictures(1).Delete
End If
End Sub

Dieses Makro löscht ein Bild sobald es ausgeführt wird:
Sub BildLoeschn()
If ActiveSheet.Pictures.Count > 0 Then ActiveSheet.Pictures(1).Delete
End Sub


Anzeige
AW: Autom. Verlinkung zu Bilddateien
18.03.2012 09:40:38
Mike
Genial - auch das klappt bestens ! :-)
Jetzt funktioniert es perfekt !
Viele Grüße und vielen vielen Dank nochmal - machs gut,
Mike
AW: Autom. Verlinkung zu Bilddateien
19.03.2012 14:36:21
Jenny
Hi Beverly,
ich arbeite mittlerweile bereits mit dem von Dir erstellten Code und bin wirklich begeistert ! :-)
Beim Testen ist mir nun noch ein kleiner Fehler aufgefallen, zu dem ich Dich noch einmal um Hilfe bitten wollte...:
Es gibt Einträge in Spalte C, zu denen es keine Bilder gibt. Klick man auf einen dieser Einträge, passiert gar nichts, was vollkommen korrekt ist, da es ja keine Datei zum Anzeigen gibt. :-)
Es gibt hier jedoch auch Einträge (ohne Bilder), die einen manuellen Umbruch in ihrer Bezeichnung in Spalte C haben, d.h. ihr Titel geht über 2 Zeilen.
Klickt man (versehentlich) auf einen solchen Eintrag, erhält man eine Fehlermeldung, da es zweizeilige Dateinamen natürlich nicht gibt. Die Fehlermeldung lautet: "Run-time error '52'. Bad file name or number".
Gibt es eine Möglichkeit, diese Fehlermeldung im Code irgendwie von vornherein auszuschalten ?
VG und nochmals vielen Dank für alles,
Mike
Anzeige
AW: Autom. Verlinkung zu Bilddateien
19.03.2012 15:26:23
Beverly
Hi Mike,
so ganz verstehe ich nicht, weshalb dieser Fehler ausgelöst werden sollte, denn wenn eine Zelle einen Inhalt hat, der im Verzeichnis nicht gefunden wird, wird doch sofort zu End If gegangen. Da spielt es keine Rolle, ob ein manueller Zeilenumbruch vorhanden ist oder keiner. Da müsstest du schon mal ein Beispiel hochladen, denn ich kann das bei mir nicht nachvollziehen.


AW: Autom. Verlinkung zu Bilddateien
19.03.2012 15:45:25
Mike
Hallo Beverly,
vielen Dank - anbei ein kleines Beispiel:
https://www.herber.de/bbs/user/79439.xlsm
Ich habe bei mir Bilder mit den Dateinamen Text3, Text7 und Text9 abgespeichert.
'- Klickt man auf die entsprechenden Einträge erscheint das jeweilige Bild wie gewünscht.
'- Klickt man auf einzeilige Einträge, zu denen es keine Bilder gibt, geschieht nichts wie gewünscht.
'- Klickt man aber auf einen der Einträge mit dem Zeilenumbruch (zu denen keine Bilder gespeichert sind), kommt wieder die gleiche Fehlermeldung.
VG,
Mike
Anzeige
AW: Autom. Verlinkung zu Bilddateien
19.03.2012 17:08:13
Beverly
Hi Mike,
ich kann den Fehler auch in deiner Arbeitsmappe nicht nachvollziehen - er tritt nicht auf. Ist deine Excel-Version aktuell (SP1 installiert)? Welche Codezeile wird gelb markiert?


AW: Autom. Verlinkung zu Bilddateien
19.03.2012 20:10:27
Mike
Hallo Beverly,
ich nutze Office 2010 und die SPs sind (meines Wissens nach) komplett installiert.
Beim Debuggen wird folgende Zeile gelb markiert:
If Dir("C:\Users\Notebook\Desktop\My Documents\Bilder\" & Target.Value & ".jpg") "" Then
Auch wenn es bei Dir wohl nicht auftritt, gibt es vielleicht einen Code-Zusatz, mit dem ich diese Meldung ausschließen kann ?
VG
Mike
Anzeige

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige