hier erstmal ein Bildchen zum besseren Verständnis:
Und hier ist der Code, der im Moment die Bilder einfügt, wenn sich in Zelle "F1" etwas ändert:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Bereich As Range
Set Bereich = Range("F1")
If Not Intersect(Target, Bereich) Is Nothing Then
On Error GoTo FEHLER
ActiveSheet.Pictures.Delete
ActiveSheet.Cells(3, 6).Select
ActiveSheet.Pictures.Insert(Cells(1, 6).Value).Select
Selection.ShapeRange.ScaleWidth 0.25, msoFalse, msoScaleFromTopLeft
Selection.ShapeRange.ScaleHeight 0.25, msoFalse, msoScaleFromTopLeft
End If
FEHLER:
Application.EnableEvents = True
End Sub
Nun dazu 2 Fragen:
1) Im Moment werden die Bilder absolut skaliert, d.h. sie müssen alle mit identischen dpi und pixeln abgespeichert sein. Kann man das Bild einfügen und dann die Größe automatisch an die Range("F3:I11") anpassen?
2) Wenn man nun nacheinander verschiedene Bilder in Excel einfügt, dann bleiben diese auch im Speicher bzw. in der Datei, richtig? Mit "Active.Sheet.Pictures.Delete" lösche ich deshalb erstmal alle Bilder, bevor ein neues eingefügt wird. So weit so gut, jedoch gibt es an anderer Stelle des Sheets ein Logo, das damit auch (fälschlicherweise) gelöscht wird :( Wie verhindere ich das?
Fragen über Fragen...