ich habe mir mit Hilfe des Forums in VBA eine Formel gebastelt, die in der Lage ist einen Hyperlink aufzurufen und ein Bild an einer bestimmten Stelle einzufügen:
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 funktioniert auch relativ gut.Ich möchte aber mehrere Bilder einfügen auf mehreren Tabellenblättern. Wenn ich den Link jetzt durch eine Information auf einem anderen Tabellenblatt gültig werden lasse, dann werden die Bilder nicht da eingefügt, wo die passende Formel Steht, sondern auf dem aktiven Blatt.
Frage 1: wie kann ich die Formel nur da ausführen, wo sie steht und damit mehrere Bilder auf mehreren Tabellenblättern einfügen?
Wenn ich jetzt irgendwelche Änderungen mache gibt es immer wieder Aktionen, die die Formel erneut ausführen, weshalb dann die Bilder mehrfach eingefügt werden. Teilweise dann, wie eben besprochen auf dem "falschen" Tabellenblatt.
Frage 2: Wie kann ich verhindern, dass die Formel ständig neu ausgeführt wird?
Wenn ich weiß, dass sich der Inhalt der gesuchten Bilder ändert möchte ich gezielt die Formel erneut ausführen, aber entweder für die noch nicht erfolgreich gesuchten Bilder, oder wahrscheinlich eher für alle, dann aber vorher alle schon eingefügten Bilder vorher löschen.
Frage 3: Wie kann ich vor dem Ausführen der Formel alle Bilder im Workbook löschen, damit sie nicht doppelt vorhanden sind?
Die Bilder werden mit dem Code alle in derselben Größe skaliert. Ich brauche aber unterschiedliche Größen.
Frage 4: Wie kann ich Bedingungen festlegen die eine unterschiedliche Skalierung bewirken?
Ich robbe mich langsam an das Thema VBA heran, glaube auch nicht hier nach Rocket-sience zu suchen, komme aber nicht weiter. Könnt Ihr mir helfen?
Viele Grüße
Torsten