ich habe hier eine Excel-Datei, die u.a. mit folgendem Code automatisch Bilder einfügt, je nach eingegebener "ID". Die jeweilige Bildpfade + Namen werden in Zellen berechnet und diese an VBA übergeben (in Abhängigkeit von der in Zelle "B3" angegebenen ID...
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address "$B$3" Then Exit Sub
Dim objBild As Object
Dim i As Byte
Dim WS As Worksheet
Set WS = ThisWorkbook.Worksheets("Property Information")
Application.ScreenUpdating = False
On Error Resume Next
'BilderLöschen
For i = 4 To 7
WS.Pictures("Bild" & i).Delete
Next i
'BilderEinfügen
For i = 4 To 7
Set objBild = WS.Pictures.Insert(ThisWorkbook.Path & "\" & WS.Range("BC" & i).Value)
With objBild
.Top = WS.Range(WS.Range("BE" & i).Value).Top
.Left = WS.Range(WS.Range("BE" & i).Value).Left
'.Width = 350
.Width = WS.Range(WS.Range("BE" & i).Value & ":" & WS.Range("BF" & i).Value).Width
.Height = .Width * 3 / 4
.Name = ("Bild" & i)
End With
Next i
usw...
Bis heute hat das alles funktioniert. Folgendes war mir vorher nicht bewusst: Das Tabellenblatt ist sehr umfangreich mit unzähligen riesigen Formeln, d.h. es muss bei einer Änderung der ID in Zelle "B3" relativ lange kalkuliert werden. Bis heute hat die Datei jedoch zuerst kalkuliert und dann den VBA-Code ausgeführt, so dass die zuerst die Bildpfade + Name kalkuliert und dann erst die neuen Bilder eingefügt werden.
Seit eben macht er es jedoch (leider) anders herum: zuerst wird der VBA-Code ausgeführt, und dann erst kalkuliert, so dass bei Eingabe der ID nicht die "neuen" Bilder eingefügt werden, sondern die alten (der vorherigen ID)...
Wie kann das sein, dass sich dies automatisch geändert hat, und wie ändere ich dies wieder?
Gruß, Boris