Discussion:
Bilder in Excel-Zelle einfügen
(zu alt für eine Antwort)
Ringgi
2006-02-20 16:49:28 UTC
Permalink
Ich habe eine Excel-Datei (Zeilen >1000). Es handelt sich um
Verkaufsprodukte. In der ersten Spalten Artikelnummer, dann Bezeichnung
etc. in einer weiteren Spalte sind die entsprechenden hyperlinks für
Bilder hinterlegt, die auf einen externen Ordner zugreifen. Jetzt soll
in der nächsten Spalte für den entsprechenden Artikel das Bild
eingefügt werden und zwar so, dass die Zelle einmal
formatiert/programmiert werden muss und dann der Inhalt runtergezogen
werden kann. Die Bilder müssen in den Zellen fixiert werden, da
anschliessend sortiert werden muss.
Kann mir jemand helfen mit der VBA-Programmierung?
Einem Makro?
Oder gibt es noch eine einfacher Lösung?

Vielen Dank und auf eine baldige Lösung
Ringgi
Harri Märki
2006-02-20 17:39:27 UTC
Permalink
Hallo Ringgi

Also du hast ...
...... eine Excel-Datei (Zeilen >1000). Es handelt sich um
Verkaufsprodukte. In der ersten Spalten Artikelnummer, dann Bezeichnung
etc. in einer weiteren Spalte sind die entsprechenden hyperlinks für
Bilder hinterlegt, die auf einen externen Ordner zugreifen. Jetzt soll
in der nächsten Spalte für den entsprechenden Artikel das Bild
eingefügt werden und zwar so, dass die Zelle einmal
formatiert/programmiert werden muss und dann der Inhalt runtergezogen
werden kann. Die Bilder müssen in den Zellen fixiert werden, da
anschliessend sortiert werden muss.
Kann mir jemand helfen mit der VBA-Programmierung?
Einem Makro?
Es würde mich erst mal interessieren, für welchen Zweck Du das so einsetzen
willst. Da du die Bilder ja quasi in einer Zelle verlinkt hast. Gibt das am
Ende sowas wie ein Produktekatalog? Oder willst Du diese Exceltabelle in
einer anderen Applikation importieren wo dann die Bilder angezeigt werden?
Sind denn die Bilder alle gleich gross im Format oder muss dies erst noch
definiert werden?

Gruss
Harri
Klaus Heinrich
2006-02-20 17:59:54 UTC
Permalink
Hi

ers gab hier mal nen Tip einen Kommentar einzufügen und
darin das Bild abzulegen

Gruß Klaus
Post by Harri Märki
Hallo Ringgi
Also du hast ...
...... eine Excel-Datei (Zeilen >1000). Es handelt sich um
Verkaufsprodukte. In der ersten Spalten Artikelnummer, dann Bezeichnung
etc. in einer weiteren Spalte sind die entsprechenden hyperlinks für
Bilder hinterlegt, die auf einen externen Ordner zugreifen. Jetzt soll
in der nächsten Spalte für den entsprechenden Artikel das Bild
eingefügt werden und zwar so, dass die Zelle einmal
formatiert/programmiert werden muss und dann der Inhalt runtergezogen
werden kann. Die Bilder müssen in den Zellen fixiert werden, da
anschliessend sortiert werden muss.
Kann mir jemand helfen mit der VBA-Programmierung?
Einem Makro?
Es würde mich erst mal interessieren, für welchen Zweck Du das so einsetzen
willst. Da du die Bilder ja quasi in einer Zelle verlinkt hast. Gibt das am
Ende sowas wie ein Produktekatalog? Oder willst Du diese Exceltabelle in
einer anderen Applikation importieren wo dann die Bilder angezeigt werden?
Sind denn die Bilder alle gleich gross im Format oder muss dies erst noch
definiert werden?
Gruss
Harri
Ringgi
2006-02-21 06:18:45 UTC
Permalink
Post by Klaus Heinrich
Hi
ers gab hier mal nen Tip einen Kommentar einzufügen und
darin das Bild abzulegen
Gruß Klaus
Post by Harri Märki
Hallo Ringgi
Also du hast ...
...... eine Excel-Datei (Zeilen >1000). Es handelt sich um
Verkaufsprodukte. In der ersten Spalten Artikelnummer, dann Bezeichnung
etc. in einer weiteren Spalte sind die entsprechenden hyperlinks für
Bilder hinterlegt, die auf einen externen Ordner zugreifen. Jetzt soll
in der nächsten Spalte für den entsprechenden Artikel das Bild
eingefügt werden und zwar so, dass die Zelle einmal
formatiert/programmiert werden muss und dann der Inhalt runtergezogen
werden kann. Die Bilder müssen in den Zellen fixiert werden, da
anschliessend sortiert werden muss.
Kann mir jemand helfen mit der VBA-Programmierung?
Einem Makro?
Es würde mich erst mal interessieren, für welchen Zweck Du das so einsetzen
willst. Da du die Bilder ja quasi in einer Zelle verlinkt hast. Gibt das am
Ende sowas wie ein Produktekatalog? Oder willst Du diese Exceltabelle in
einer anderen Applikation importieren wo dann die Bilder angezeigt werden?
Sind denn die Bilder alle gleich gross im Format oder muss dies erst noch
definiert werden?
Gruss
Harri
Hallo Harri
Ja, es gibt schlussendlich einen Produktkatalog. Es ist aber nur die
Vorstufe, wir werden diesen dann in eine andere Applikation
transferieren und dann die Artikel als Katalog ausdrucken. Da wir dies
dann in Zukunft mehrmals mit verschiedenen Artikelgruppen machen werden
lohnt sich da schon noch etwas Aufwand das erste Mal. Ein weiteres
Problem hast du richtig erkannt: die Bilder müssen noch auf eine
bestimmte Grösse gebracht werden, resp. die Zellengrösse genau
ausfüllen (mit gedrückter Alt-Taste bis an den Rand ziehen).

Bis später
Gruss
Ringgi
Harri Märki
2006-02-21 08:20:28 UTC
Permalink
Hallo Ringgi

So wie Du dir das vorstellst, dürfte es wohl nicht ganz einfach sein.
Probier mal das aus, was Dir Thomas Ramel empfiehlt. Ansonsten schreibst Du...
Post by Ringgi
Ja, es gibt schlussendlich einen Produktkatalog. Es ist aber nur die
Vorstufe, wir werden diesen dann in eine andere Applikation
transferieren und dann die Artikel als Katalog ausdrucken.
Da es sich hierbei ja nur um eine Vorstufe handelt, also nicht um den
eigentlichen Produktekatalog, sondern eher um eine "interne" Liste, bin ich
der Meinung, dass es nicht unbedingt nötig ist, die Bilder einzufügen. Du
hast ja in einer Zelle den Link zum Bild drinn. Wenn eure andere Applikation
ein schlaues Produkt ist, so sollte diese "Bildlink" hinterlegung reichen.
Den Rest müsste ja dann eigentlich die Applikation selber machen. Hast Du das
schon mal versucht?
Oder hab ich Dich jetzt trotz allem irgendwie falsch verstanden?
Post by Ringgi
Da wir dies
dann in Zukunft mehrmals mit verschiedenen Artikelgruppen machen werden
lohnt sich da schon noch etwas Aufwand das erste Mal. Ein weiteres
Problem hast du richtig erkannt: die Bilder müssen noch auf eine
bestimmte Grösse gebracht werden, resp. die Zellengrösse genau
ausfüllen (mit gedrückter Alt-Taste bis an den Rand ziehen).
Zu der Anpassung der Bilder auf die richtige Zellgrösse kann ich Dir leider
keine Tipps geben. Aber wie bereits erwähnt, versuch den Tip von Thomas Ramel.

Gruss
Harri
Ringgi
2006-02-21 06:13:06 UTC
Permalink
Post by Harri Märki
Hallo Ringgi
Also du hast ...
...... eine Excel-Datei (Zeilen >1000). Es handelt sich um
Verkaufsprodukte. In der ersten Spalten Artikelnummer, dann Bezeichnung
etc. in einer weiteren Spalte sind die entsprechenden hyperlinks für
Bilder hinterlegt, die auf einen externen Ordner zugreifen. Jetzt soll
in der nächsten Spalte für den entsprechenden Artikel das Bild
eingefügt werden und zwar so, dass die Zelle einmal
formatiert/programmiert werden muss und dann der Inhalt runtergezogen
werden kann. Die Bilder müssen in den Zellen fixiert werden, da
anschliessend sortiert werden muss.
Kann mir jemand helfen mit der VBA-Programmierung?
Einem Makro?
Es würde mich erst mal interessieren, für welchen Zweck Du das so einsetzen
willst. Da du die Bilder ja quasi in einer Zelle verlinkt hast. Gibt das am
Ende sowas wie ein Produktekatalog? Oder willst Du diese Exceltabelle in
einer anderen Applikation importieren wo dann die Bilder angezeigt werden?
Sind denn die Bilder alle gleich gross im Format oder muss dies erst noch
definiert werden?
Gruss
Harri
Thomas Ramel
2006-02-21 06:45:03 UTC
Permalink
Grüezi Ringgi

Ringgi schrieb am 20.02.2006
Post by Ringgi
Ich habe eine Excel-Datei (Zeilen >1000). Es handelt sich um
Verkaufsprodukte. In der ersten Spalten Artikelnummer, dann Bezeichnung
etc. in einer weiteren Spalte sind die entsprechenden hyperlinks für
Bilder hinterlegt, die auf einen externen Ordner zugreifen. Jetzt soll
in der nächsten Spalte für den entsprechenden Artikel das Bild
eingefügt werden und zwar so, dass die Zelle einmal
formatiert/programmiert werden muss und dann der Inhalt runtergezogen
werden kann.
Das wird so nicht klappen, da der Code jeweils auf die Zelle zugreifen und
das Bild einfügen muss - mit einer Funktion die aus einer Zelle heraus
aufgerufen wird, ist das nicht möglich.
Post by Ringgi
Die Bilder müssen in den Zellen fixiert werden, da
anschliessend sortiert werden muss.
Kann mir jemand helfen mit der VBA-Programmierung?
Schau dir mal die folgenden Zeilen an; die helfen beim Einfügen in die
Zellen.

Achte darauf, dass die betreffenden Zellen zuvor dieselbe Grösse haben,
sonst klappt das mit dem sortieren anschliessend nicht.

Sub Bild_Einfuegen()
Dim oPic As Object
Dim rngZelle As Range
Set rngZelle = Range("E10")
Set oPic = ActiveSheet.Pictures.Insert( _
"DeinPfad:\DeinOrdner\DeineDatei.jpg")
oPic.Top = rngZelle.Top
oPic.Left = rngZelle.Left
oPic.Height = rngZelle.Height
oPic.Width = rngZelle.Width
oPic.Placement = xlMoveAndSize
End Sub



Mit freundlichen Grüssen
Thomas Ramel (@work)
--
- MVP für Microsoft-Excel -
[Win XP Pro SP-2 / xl2003 SP-1]
Microsoft Excel - Die ExpertenTipps:
(http://tinyurl.com/9ov3l und http://tinyurl.com/cmned)
Ringgi
2006-02-21 14:51:58 UTC
Permalink
Grüezi Thomas
Danke mal vorerst für deine Hilfe.
Kannst du mir genau sagen, was ich in deinem Programm noch individuell
anpassen muss, denn ich verstehe von VBA-Programmierung wirklich
nichts.

Ich habe noch eine Alternative
Die Vorgabe zu oben hat sich nun so verändert, dass das Dokument
schlussendlich ein fertiger Katalog werden soll und nicht noch durch
eine weitere Anwendung "verarbeitet" wird. Das bedeutet, dass ich die
Bilder effektiv in jeder Zelle drinhaben muss.
Ich habe mit dem VBA-Recorder folgendes probiert:

Range("B84").Select
Application.Goto Reference:="R84C2"
Range("C84").Select
ActiveSheet.Paste
ActiveSheet.Shapes("Picture 98").Select
Selection.ShapeRange.LockAspectRatio = msoTrue
Selection.ShapeRange.Height = 84.75
Selection.ShapeRange.Width = 84.75
Selection.Cut
ActiveSheet.Pictures.Paste.Select
Selection.ShapeRange.IncrementTop 0.75
Selection.ShapeRange.IncrementTop -0.75
Range("C85").Select

Meine Idee dazu ist folgende:
In der Zelle, wo ich das Bild haben will setze ich an, dann
eine Zelle nach links (dort ist der Hyperlink), aktivieren (IE geht
auf), Bild markieren, Ctrl-C, zurück ins Excel, ins Feld wechseln wo
das Bild eingefügt werden soll, Ctrl-V, jetzt vergrössert sich das
Bild aber auf 300%, obwohl es in der Endgrösse abgespeichert ist,
somit muss ich nun das Bild auf meine gewünschte Grösse verkleinern,
dann Ctrl-x, shift-Alt-B und Bild in Yelle (fixiert) einfügen. Das
Ganze ist mit der Tastenkombination Ctrl-Q hinterlegt - diesen
Kompromiss kann ich eingehen.
Leider bekomme ich aber einerseits Fehlermeldungen im Ablauf des Makros
und andererseits springt mir die Auswahl der Felder immer ins
Ausgangsfeld zurück.
Kannst du mir weiter helfen?

Gruss
Ringgi
Thomas Ramel
2006-02-22 20:25:28 UTC
Permalink
Grüezi Ringgi

Ringgi schrieb am 21.02.2006
Post by Ringgi
Kannst du mir genau sagen, was ich in deinem Programm noch individuell
anpassen muss, denn ich verstehe von VBA-Programmierung wirklich
nichts.
Die Vorgabe zu oben hat sich nun so verändert, dass das Dokument
schlussendlich ein fertiger Katalog werden soll und nicht noch durch
eine weitere Anwendung "verarbeitet" wird. Das bedeutet, dass ich die
Bilder effektiv in jeder Zelle drinhaben muss.
In der Zelle, wo ich das Bild haben will setze ich an, dann
eine Zelle nach links (dort ist der Hyperlink), aktivieren (IE geht
auf), Bild markieren, Ctrl-C, zurück ins Excel, ins Feld wechseln wo
das Bild eingefügt werden soll, Ctrl-V, jetzt vergrössert sich das
Bild aber auf 300%, obwohl es in der Endgrösse abgespeichert ist,
somit muss ich nun das Bild auf meine gewünschte Grösse verkleinern,
dann Ctrl-x, shift-Alt-B und Bild in Yelle (fixiert) einfügen. Das
Ganze ist mit der Tastenkombination Ctrl-Q hinterlegt - diesen
Kompromiss kann ich eingehen.
Leider bekomme ich aber einerseits Fehlermeldungen im Ablauf des Makros
und andererseits springt mir die Auswahl der Felder immer ins
Ausgangsfeld zurück.
Kannst du mir weiter helfen?
Die Kopier und Einfüge-Aktion klappt in den andern geöffneten
Applikationnen nicht.

Du kannst aber die folgende angepasste Sub verwenden, welche dir alle als
Hyperlink hinterlegten Bilder in die jeweils rechts danaben stehende
kopiert:

Sub HyperlinksExtract()
Dim h As Hyperlink
Dim oPic As Object
Dim rngZelle As Range

For Each h In ActiveSheet.Hyperlinks
Set rngZelle = Cells(h.Range.Row, h.Range.Column + 1)
Set oPic = ActiveSheet.Pictures.Insert(h.Address)
oPic.Top = rngZelle.Top
oPic.Left = rngZelle.Left
oPic.Height = rngZelle.Height
oPic.Width = rngZelle.Width
oPic.Placement = xlMoveAndSize
Next h
End Sub



Mit freundlichen Grüssen
Thomas Ramel
--
- MVP für Microsoft-Excel -
[Win XP Pro SP-2 / xl2000 SP-3]
Microsoft Excel - Die ExpertenTipps:
(http://tinyurl.com/9ov3l und http://tinyurl.com/cmned)
Lesen Sie weiter auf narkive:
Loading...