Grafik Datei abhängig vom Zellinhalt einfügen

13/04/2009 - 12:45 von Andreas | Report spam
Hallo NG!

In Zelle A1 steht der Dateiname (von mir aus auch gesamter Pfad auf
der Festplatte) von einer Grafikdatei. Die entsprechende Grafikdatei
soll im aktuellen Tabellenblatt angezeigt werden. Sie soll sich
natürlich dynamisch àndern, wenn sich der Name in Zelle A1 àndert.

Wie stelle ich das unter Excel 2007 an?

Danke und Gruß
Andreas
 

Lesen sie die antworten

#1 Michael Schwimmer
13/04/2009 - 22:11 | Warnen spam
Hallo Andreas,

Am Mon, 13 Apr 2009 03:45:05 -0700 (PDT) schrieb Andreas:
In Zelle A1 steht der Dateiname (von mir aus auch gesamter Pfad auf
der Festplatte) von einer Grafikdatei. Die entsprechende Grafikdatei
soll im aktuellen Tabellenblatt angezeigt werden. Sie soll sich
natürlich dynamisch àndern, wenn sich der Name in Zelle A1 àndert.



aus der Steuerelement-Toolbox (Reiter Entwicklertools,
Einfügen/ActiveX-Steuerelemente/Bildsteuerelement) ein Bildsteuerelement
einfügen und einen Namen (Eigenschaften/Namen) vergeben. Eventuell den
PictureSizeMode anpassen, der legt fest, wie ein Bild im Steuerelement
dargestellt wird, beispielsweise gestreckt oder verkleinert, so dass es
komplett angezeigt wird. Den Entwurfsmodus nun beenden.
Einen rechten Mausklick auf den Tabellenreiter und "Code anzeigen"
auswàhlen.
Nun folgenden Code in das angezeigte Klassenmodul einfügen:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim objPicture As Object
On Error Resume Next

' Adresse der Zelle mit dem Dateipfad anpassen
If Target.Address(0, 0) = "A1" Then
If dir(Target.Value) <> "" Then
' Name des Bildsteuerelements anpassen
Set objPicture = Me.Shapes("Image1").DrawingObject.Object
' Gewünschten Stretchmode auswàhlen
' objPicture.PictureSizeMode = fmPictureSizeModeClip
' objPicture.PictureSizeMode = fmPictureSizeModeZoom
' objPicture.PictureSizeMode = fmPictureSizeModeStretch
' Bild zuweisen
objPicture.Picture = LoadPicture(Target.Value)
End If
End If
End Sub


Dir sollte aber auch klar sein, dass das Bild intern als Bitmap vorliegt,
selbst wenn ein komprimiertes Bildformat wie jpg als Quelle verwendet wird
(Jedenfalls stellt StdPicture ein Bitmaphandle zur Verfügung). Im
XLS-Format schlàgt das dann voll durch.

Die EMF-Bilddatei (Windows Enhanced Metafile) einer ca 60 KB großen jpg im
entzippten xlsm-Ordner von XL 2007 nimmt da auch schon mal an die 2 MB ein.
Gezippt sind das etwas weniger, so dass die Datei dann auf etwa 1,5 MB
kommt.

Viele Grüße
Michael


http://michael-schwimmer.de
Masterclass Excel VBA ISBN-10: 3827325250
Das Excel-VBA Codebook ISBN-10: 3827324718
Microsoft Office Excel 2007-Programmierung ISBN-10: 3866454139

Ähnliche fragen