Seit Excel 2010 gibt es ein Problem wenn man Bilder mit ActiveSheet.Pictures.Insert einfügt. Beim Einfügen wird das Bild nur als Verknüpfung eingefügt. Auf anderen Rechnern, auf denen das Bild nicht vorhanden ist, kommt es natürlich zu einer fehlerhaften Anzeige. Im Internet wird immer nur auf ActiveSheet.Shapes.AddPicture verwiesen. Es gibt aber eine andere Lösung. Um dieses Problem zu umgehen kopiert man das eingefügte Bild, löscht es und fügt es (aus der Zwischenablage) neu ein. Funktioniert bei mir gut.
Ein Auszug aus meinem Projekt:
Vorteil von ActiveSheet.Pictures.Insert ist dass man es exakt an der Zelle einfügen kann an der man es möchte. Bei der Alternative ActiveSheet.Shapes.AddPicture muss man leider exakte Positionsangaben setzen, was aber in der Praxis nie sauber funktioniert.
Ein Auszug aus meinem Projekt:
Public Sub RefreshRangeOne()
On Error Resume Next
Dim pngInsert As String
Dim strRNG As Range
pngInsert = Environ("USERPROFILE") & "\Desktop\Benutzer1.tif"
With ActiveSheet
.Unprotect "Passwort"
.Pictures.Insert(pngInsert).Select
With Selection
.Copy
.Delete
End With
Range("B9").Select
Set strRNG = ActiveCell
strRNG.PasteSpecial xlPasteAll
Kill pngInsert
.Protect "Passwort"
End With
End SubVBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media
Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0
Vorteil von ActiveSheet.Pictures.Insert ist dass man es exakt an der Zelle einfügen kann an der man es möchte. Bei der Alternative ActiveSheet.Shapes.AddPicture muss man leider exakte Positionsangaben setzen, was aber in der Praxis nie sauber funktioniert.