Clever-Excel-Forum

Normale Version: Bilder aus einer URL anzeigen und wieder überschreiben
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen

Sorry, im Voraus. Ich weiss, die Frage wurde schon X mal behandelt. Aber meine Anforderung habe ich so nicht gefunden.

Ich habe eine Exceltabelle. In der Zelle X2 steht jeweils eine URL. Ich möchte jetzt nur, dass in der Zelle X5 das Bild aus der URL dargestellt wird. 
 
Grundsätzlich geht das schon mit dem folgenden Modul:
===================
Sub bildeinfuegen()
Function bildeinfuegenausURL(URL As String) As String
With ActiveSheet.Pictures.Insert(URL)
.top = Application.Caller.top + 1
.left = Application.Caller.left + 1
.ShapeRange.height = 300
End With
InsertPicFromURL = ""
End Function
===================

-> Das Problem ist aber, dass es das Bild immer und immer wieder in die Tabelle kopiert. Wie kann ich sicherstellen, dass jeweils nur das Bild aus 
der aktuellen URL in der Tabelle ist? 

Ich denke, das Bild muss einen Namen bekommen. Beim erneuten Laden muss das "alte" Bild gelöscht und das neue geladen werden.

Mit Excel kenne ich mit gut aus, mit VBA nicht. Kann mir jemand den Code anpassen?
(26.07.2023, 07:16)Meister_Popper schrieb: [ -> ]Da hab ich doch glatt den falschen Code reinkopiert! Soryy
 
Grundsätzlich geht das schon mit dem folgenden Modul:
===================
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim strBildName As String
    strBildName = "VerlinktesBild" 'Interner Bildname - nicht ändern !
   
    On Error Resume Next
 
 
  If Not Intersect(Target, [X2]) Is Nothing Then
       
        ActiveSheet.Pictures(strBildName).Delete 'Vorheriges Bild löschen
        If Target.Value <> "" Then
            If Dir(Target.Value) <> "" Then
                With ActiveSheet.Pictures.Insert(Target.Value)
                    .top = [X5].top + 1  'Oben ausrichten
                    .left = [X5].left + 1 'links ausrichten
                    .Name = strBildName    'Bildname zuweisen
                End With
            End If
        End If
    End If

End Sub
===================