Urls als Bild in Excel 2007?

3 Antworten

Du könntest dir das Einfügen von Bildern mit dem Makrorekorder aufzeichnen lassen. Ich komme so auf folgenden Ansatz:

Public Sub BildZumLinkEinfuegen(rZelleMitLink As Range)
    Dim pic As Picture
    Set pic = ActiveSheet.Pictures.Insert(rZelleMitLink.Value)
    pic.TopLeftCell = Range("D1")
End Sub
canizero 
Fragesteller
 13.06.2016, 13:40

Danke dir, ich denke, dass das schon in die richtige Richtung geht... das Ganze aber auf den kompl. Worksheet automatisiert gibts net? Oder wie mach ich das mit dem Aufzeichen? Auf eine Zeile anwenden und dann? 

0
Suboptimierer  13.06.2016, 13:44
@canizero

Du kannst als Parameter auch einen Zellbereich übergeben.

Dann müsstest du in der Prozedur mit einer For-Each-Schleife jede Zelle verwursten. Mit .Offset kannst du dich relativ zur gerade verarbeitenden Zelle bewegen.

Dim rZelle As Range
For Each rZelle in rZelleMitLink
  Set pic = ...
  Set pic.TopLeftCell = rZelle.Offset(0, 1)
Next

(Muster)

0
canizero 
Fragesteller
 13.06.2016, 13:57
@Suboptimierer

Oh man, vielen Dank für deine Hilfe aber ich versteh kein Wort :(  Ist doch eigentlich echt lächerlich, dass es da keine Funktion in Excel für gibt. Gibt es vllt einen Code den ich als Modul einsetzen kann, Quell Spalte und Zielspalte einfügen und den Rest macht excel?

0

ich wüsste jetzt auch nur folgende Möglichkeit:

- Arbeitsmappe oder Tabelle speichern als HTML-Datei ("Speichern unter" bzw. "Speichern als" -> "Webseite (*.htm; *.html)"

- Excel schließen (damit die Datei mit einem anderen Programm bearbeitet werden kann)

- wenn nur einzelne Tabelle: neu gespeicherte HTML-Datei öffnen

- wenn Arbeitsmappe: Ordner zur Datei öffnen ("[Mappenname]-Dateien")

- darin das betreffende Arbeitsblatt als Datei suchen

- die Datei mit einer geeigneten Textverarbeitung öffnen (Achtung: als Text öffnen, NICHT als HTML-Dokument! - Oder: HTML-Quelltext bearbeiten)

- im Quelltext ersetzen:

.... - "<a" durch "<img",
.... - "href=" durch "src=",
.... - "/a>" durch "/img>"

- Datei speichern, anderes Programm schließen

- HTML-Datei mit Excel öffnen

- Datei speichern als Excel-Datei

- Excel schließen

Wenn jetzt die Datei mit Excel geöffnet wird, waren bei mir die Bilder drin.

(Ich nehme stark an, dass es eine einfachere Möglichkeit gibt, aber die gibt die Excel-Hilfe nicht her.)

canizero 
Fragesteller
 13.06.2016, 13:30

Danke dir, hört sich gut an, leider habe ich keinen Schimmer was ich wo im Quelltext ändern soll. <a und href gibt es hier zu Haufe x(

0
PWolff  13.06.2016, 14:50
@canizero

Hab mal 'n bisschen rumgespielt. Hab ne neue Excel-Datei angelegt und die URLs alle in Spalte A kopiert, wobei ich Zelle A1 freigelassen hab.

Dann hab ich in B1, C1 und D1 folgende Formeln eingetragen:

=WENN($A1="";WENN($A2<>"";"<table>";"</table>");"<tr height=""150""><td><a href="""&$A1&""">Link zum Bild</a></td><td width=""120""><img width=""110"" height=""140"" src="""&$A1&"""></img></td></tr>")

=WENN($A1="";WENN($A2<>"";"<table>";"</table>");"<tr height=""150""><td width=""120""><a href="""&$A1&"""><img width=""110"" height=""140"" src="""&$A1&"""></img></a></td></tr>")

=WENN($A1="";WENN($A2<>"";"<table>";"</table>");"<tr height=""150""><td><a href="""&$A1&""">Link zum Bild</a></td><td width=""120""><a href="""&$A1&"""><img width=""110"" height=""140"" src="""&$A1&"""></img></a></td></tr>")

(mal sehen, ob es mit dem Einfügen von spitzen Klammern klappt)

Die Bilder haben bei mir alle die Größe 110 Pixel (Breite) * 140 Pixel (Höhe), deshalb konnte ich Breite und Höhe mit hineinnehmen. Sonst verwendet Excel einfach Standard-Höhe und -Breite.

Die Formeln hab ich über die ganze Tabelle runtergezogen. Am einfachsten, bis Zeile 2 runterziehen, dann den Ziehpunkt doppelklicken.

Zuletzt hab ich die Formeln noch eine Zeile weiter runtergezogen, in die erste freie Zeile nach den ganzen URLs.

(Die erste und die letzte Zeile dienen dazu, aus dem ganzen eine HTML-Tabelle zu machen; es geht möglicherweise auch ohne, aber ich verlass mich nicht drauf.)

Nachdem das ohne Fehlermeldung geklappt hat, hab ich die Tabelle gespeichert (wär' ja zu schade, wenn die Mühe durch einen blöden Zufall umsonst war).

Dann hab ich Spalte B markiert, kopiert, in eine Textdatei eingefügt und die Textdatei als "urls-1.htm" gespeichert.

Ebenso Spalte C in "urls-2.htm" und Spalte D in "urls-3.htm".

Diese 3 Dateien habe ich dann mit Excel geöffnet und als Excel-Arbeitsmappe gespeichert, um wieder Excel-Dateien zu haben.

Bis fast alles funktioniert hat, musste ich noch die Umlaute in den URLs maskieren - ich hab einen Umlaut im Dateipfad zu den Bildchen. Ein Bild hat ein "#" im Dateinamen, das kriegt Excel nicht geregelt, trotz "%23" statt "#" im URL.

(Umlaute maskieren:
"Ä" -> "%C4"
"Ö" -> "%D6"
"Ü" -> "%DC"
"ä" -> "%E4"
"ö" -> "%F6"
"ü" -> "%FC"
"ß" -> "DF"
)

Musst mal schauen, was deinen Wünschen am nächsten kommt.

(Es wäre übrigens auch möglich, statt der Endung "htm" die Endung "xls" zu nehmen - Excel kommt damit auch klar; könnte aber sein, dass es das Layout verschlimmbessert.)

1

Die ganzen gezeigten Makros berücksichtigen aber nicht eventuelle unterschiedliche Größen der Bilder, so dass alles verzerrt eingefügt wird. Da gibt es ein fertiges Tool, was das alles kann: Wenn man automatisch Bilder in Excel einfügen will, kann man auch IMAGE-XLS verwenden. Mit dem Tool können beliebig viele Bilder oder Kommentare oder auch PDF in Excel Dateien importiert bzw. eingefügt werden. Die Bilder sind dann auch mit sortierbar und der Filter funktioniert auch mit den Bildern.