Thanks for the hints (don't have a clue why I did not find the simular issue, did search for it). Ended up using below code for testing, which does the trick:
xlRangeTemp = SubtractRanges(xlRangeRealUsed, xlRangeSameSheet)
For Each rngCell In xlRangeTemp
arrow = 1
link = 1
Try
rngCell.ShowDependents()
'watch if dependent is on protected sheet 'to be changed
Catch ex As Exception
End Try
Try
xlPrecedentRange = rngCell.NavigateArrow(False, arrow, link)
Catch ex As Exception
End Try
If xlPrecedentRange.Worksheet.Name <> rngCell.Worksheet.Name Then
If xlRangeOtherSheets Is Nothing Then
xlRangeOtherSheets = rngCell
Else
xlRangeOtherSheets = XL.Union(xlRangeOtherSheets, rngCell)
End If
End If
Next
WsClearArrowsBasic (xlWorksheet)