Hallo Julia,
meinst du das ungefähr so?
ActiveCell.Formula = "=" _ & IIf(.Range("D" & i).Parent.Name <> ActiveSheet.Name, .Range("D" & i).Parent.Name & "!", "") _ & .Range("D" & i).Address(False, False)
Gruß Mr. K.