Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1248to1252
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

Bilder aus dem Internet automatisch in Excel anzei

Bilder aus dem Internet automatisch in Excel anzei
don
Hallo,
ich weiß nicht wieso mich das überfordert aber ich kann zwar meinen am 2. Februar verfassten Thread im Forum finden, jedoch nicht auf selbigen antworten. Deshalb nun ein neuer. Vielleicht kann man die ja hinterher zusammenlegen.
Ich meldete mich letztesmal mit dem Problem nicht nur einen sondern gleich mehrere Bilderlinks von Excel aus einer Url in ein Bild verwandeln zu lassen. Der damalige Thread endet damit dass ich erst das Layout fertigstellen wollte damit ich dann konkreter das Problem formulieren kann.
Hier ein Auszug des Ergebnisses:
Bildlink: http://666kb.com/i/c154hq6pepuu2tpu6.gif
In ED1-ED3 liegen die von Excel generierten Bild-Urls die die Pfade zu den drei in CP1,CP22 und CP39 angeben. Wie das letztenendes zu stande kommt ist mir gleich. Es kann auch gerne so sein dass sich die Bilderlinks in der selben Zelle befinden in der dann das Bild erscheint. Oder die Bildlinks in einem separaten Sheet liegen (was mir sogar am liebsten wäre). Die Bilder müssen darüberhinaus auch nicht aus dem Internet geladen werden können, sondern können auch Pfade auf meiner Festplatte sein, da all die Bilder auch dort liegen.
Ich hab hier auch einen kleinen Auszug aus meiner Tabelle zusammengebastelt der auf meine Problemstellung fokusiert ist.
Link: http://www.file-upload.net/download-4103955/excelbeispiel.xlsx.html
Die Original-Tabelle ist vermutlich zu groß und ohenhin zu umfangreich um sie an dieser Stelle hochzuladen, hier aber ein Screenshoit davon. Am Ende sollen die Bilder alle per Url-Umwandlung, nach obiger Problematik, dargestellt werden.
Link: http://nna.nn.ohost.de/excel2.png
Es wäre wirklich toll könnte mich jemand bei diesem Problem an der Hand nehmen. Ich schlage mich bereits seit Tagen intensiv und insgesamt seit Wochen damit herum. Das Problem taucht im Internet öfter auf (wenngleich sich die Problematik dort eigentlich immer nur auf ein einziges Bild beschränkt und nicht wie bei mir auf gleich mehrere), eine funktionierende Erklärung konnte ich bislang allerdings nicht finden auch wenn es ein recht simples Problem zu sein scheint da die Codes die von den hilfsbereiten Forums-Mitgliedern als Lösung angeboten werden sehr knapp sind. Vielleicht scheitert es auch nur an meinen nicht vorhandenen VBA Künsten.
hier auch noch Links mit vermeintlichen Lösungsansätzen die ich aber alle nicht zum Laufen gebracht habe:
http://www.mrexcel.com/forum/showthread.php?t=84733
http://stackoverflow.com/questions/6312710/how-to-get-images-to-appear-in-excel-given-image-url
und natürlich auch das hier auf dieser Seite bereitgestellte Beispiel.
Ich werde parallel zu diesem Thread natürlich noch weiter im Internet nach Lösungen suchen und mich, auch wenn ich etwas gefunden habe, erneut hier melden um meine eigene Frage zu beantworten, damit dieses "weltweite Problem" ein für alle mal gelöst werden kann :)
vielen Dank im voraus
Peter
AW: Bilder aus dem Internet automatisch in Excel anzei
10.02.2012 17:02:01
Nepumuk
Hallo,
versuch es mal damit:
Option Explicit

Private Declare Function URLDownloadToFile Lib "urlmon.dll" Alias "URLDownloadToFileA" ( _
    ByVal pCaller As Long, _
    ByVal szURL As String, _
    ByVal szFileName As String, _
    ByVal dwReserved As Long, _
    ByVal lpfnCB As Long) As Long

Private Const NO_ERROR = 0&
Private Const PICTURE_PATH = "C:\TempPicture.jpg"

Private Sub Insert_Picture(ByVal pvstrPicture As String, ByRef probjRange As Range)
    Dim InsertPicture As Shape
    If Download_Picture(pvstrPicture) Then
        With probjRange
            Set InsertPicture = .Parent.Shapes.AddPicture( _
                PICTURE_PATH, msoFalse, msoTrue, .Left, .Top, -1, -1)
        End With
        Call Kill(PICTURE_PATH)
    End If
End Sub

Private Function Download_Picture(pstrPictureURL As String) As Boolean
    Dim lngReturn As Long
    If Dir$(PICTURE_PATH) <> vbNullString Then Call Kill(PICTURE_PATH)
    lngReturn = URLDownloadToFile(0&, pstrPictureURL, PICTURE_PATH, 0&, 0&)
    If lngReturn = NO_ERROR Then
        Download_Picture = True
    Else
        MsgBox "Fehler beim Download"
    End If
End Function

Public Sub Test()
    Call Insert_Picture("http://www.b-five.net/simleague/anderes/bilder/players/adalardogrannas.jpg", Tabelle1.Cells(1, 1))
    Call Insert_Picture("http://www.b-five.net/simleague/anderes/bilder/players/dennisbliss.jpg", Tabelle1.Cells(12, 1))
    Call Insert_Picture("http://www.b-five.net/simleague/anderes/bilder/players/marccuban.jpg", Tabelle1.Cells(23, 1))
End Sub

Gruß
Nepumuk
Anzeige
AW: Bilder aus dem Internet automatisch in Excel anzei
13.02.2012 22:33:02
don
also erstmal vielen Dank für den prompten Hilfeversuch!
der von Nepomuk gepostete Code erzeugt bei mir allerdings einen Fehler: compile error: variable not defined
(nur um sicher zu gehen: ich hab den Reiter Sheet1 rechts-geklickt und unter View Code den Code hineinkopiert, danach das Macro über die Developer-Tools ausgewählt und auf Run geklickt).
Ich habe allerdings einen Code gefunden der eigentlich genau macht was ich mir erhofft hatte:
Sub x()
Dim oHL         As Hyperlink
With ActiveSheet
For Each oHL In .Hyperlinks
With .Pictures.Insert(oHL.Address)
.Left = oHL.Range.Left
.Top = oHL.Range.Top
End With
Next oHL
End With
End Sub
dieses wunderbare Ding wandelt URLs in der selben Zelle in der die URL zu finden ist in ein Bild um. Soweit so gut, allerdings tauchen neue Probleme auf: Ich bräuchte im Zuge dessen einen Code der die dort bislang liegenden Bilder vorher löscht bevor er die URL beim nächsten Öffnen des Worksheets neu umrechnet.
Und noch viel wichtiger: obiger Code wandelt die URL perfekt in ein Bild um, stellt diese allerdings in Originalgrösse dar, wodurch ich jedes einzelne Bild per Hand auf die richtige Grösse umwandeln müßte. Jezt ist die Frage ist es möglich dafür ein Macro aufzuzeichnen oder zu schreiben dass das Ändern der Grösse der Bilder für mich übernimmt? Wenn ich es mit einem aufgezeichneten Macro versuche muss ich jedes Bild erst extra anwählen bevor das Macro feherlfrei läuft.
Oder eine andere Variante wäre vielleicht "image controls" einzufügen die mit den Zellen in denen die URLs liegen verknüpft sind sodass die Bilder nicht in der Zelle mit der URL sondern im jeweiligen "image control" angezeigt werden?
Ich komme der Lösung näher, alleine schaffe ich es aber wohl nicht.
Anzeige
AW: Bilder aus dem Internet automatisch in Excel anzei
14.02.2012 00:21:30
Nepumuk
Hallo,
der Code hat zwar in der Klasse einer Tabelle nichts zu suchen, aber abgesehen davon ist da kein Fehler drin. Du hast nur vergessen den Tabellennamen anzupassen bzw. hast du in falsch angepasst,
Gruß
Nepumuk
AW: Bilder aus dem Internet automatisch in Excel anzei
16.02.2012 17:51:58
don
Also dein Code funktioniert nun natürlich perfekt nachdem ich ihn entsprechend konfiguriert habe, was aber auch nicht anders zu erwarten war.
Ein Problem ist mir allerdings geblieben, dass der Code die neu geladenen Bilder einfach über die bisherigen Bilder legt. Würde er diese auch noch vorher löschen wäre das Ding (fast*) perfekt.
* "fast" nur deshalb da ich eigentlich auch noch eine Formattierung der Bilder bräuchte aber die Bildergrösse kann ich auch einfach vorher enstprechend anpassen.
Anzeige
AW: Bilder aus dem Internet automatisch in Excel anzei
16.02.2012 18:12:19
don
... aber möchte ich den Code in einem anderen Worksheet mit anderen Sheet-Namen verwenden spuckt er mir wieder den Fehler "Variable not found" aus. Ist das Sheet auf den sich das Macro bezieht auch noch anderswo als in den 3 Zeilen unterhalb von "Public Sub Test()" definiert?
In der Testtabelle die ich in einem früheren Post mitgeschickt habe, funktioniert allerdings alles einwandfrei!
AW: Bilder aus dem Internet automatisch in Excel anzei
16.02.2012 18:29:24
Nepumuk
Hallo,
ich benutze grundsätzlich die Objektnamen der Tabellen. Das ist der Name welcher im Projektexplorer vor dem in Klammern stehenden Excelnamen der Tabellen steht. Und nein, der Tabellenname wird nur ein einziges mal benötigt.
Gruß
Nepumuk
Anzeige
AW: Bilder aus dem Internet automatisch in Excel anzei
16.02.2012 18:15:23
Nepumuk
Hallo,
ein Beispiel:
Public Sub Test()
    Dim objShape As Shape
    For Each objShape In Tabelle1.Shapes ' Tabelle anpassen !!!!!!!!!!!!!!!!!!!!!!
        Select Case objShape.TopLeftCell.Address(RowAbsolute:=False, ColumnAbsolute:=False)
            Case "A1", "A12", "A23" ' Adressen anpassen !!!!!!!!!!!!!!!!!!!!!
                objShape.Delete
        End Select
    Next
End Sub

Gruß
Nepumuk
Anzeige
2.2. ist schon im 'nur noch im Archiv'-Status! orT
10.02.2012 19:18:20
Luc:-?
Gruß Luc :-?

23 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige