an Makro hatte ich auch schon gedacht. Vielleicht die Änderung
von D5 nach $D$5 nachträglich machen über das Worksheet_Change
Ereignis. Aber ich glaube, das Finden einer Adresse im
Formel-String ist nicht so ganz einfach. Na, ich werde mal ein
bißchen probieren.
Hallo Andreas,
wenn ja Excel so ticken würde wie ich denke hätte ich schon eine kurze Lösung ohne die Formel ausschlachten zu müssen.
Leider werden in den MsgBoxen die falschen Zelladressen angezeigt.
Und bei Verweisen auf ein anderes Tabellenblatt kommt sogar ein Fehler (keine zellen gefunden)
Es ist egal ob man Precedents oder DirectPrecedents nimmt, auf die Schnelle ist da kein Unterschied zu erkennen.
In Worksheet_Change kannste ja ein
Call Ersetzen(Target)
einbauen, aber zum Testen ist die Sub Test() besser.
Getestet hatte ich mit
A1: =C1+E2+C7
A2: =Tabelle2!D5
Und angezeigt werden für A1: C1, C2, C3
bei A2 kommt der Fehler
Sub test()
Call Ersetzen(Range("A1:A2"))
End Sub
'
Sub Ersetzen(Bereich As Range)
Dim Zelle As Range, N As Integer
For Each Zelle In Bereich
If Zelle.HasFormula Then
MsgBox Zelle.Address
For N = 1 To Zelle.DirectPrecedents.Count
MsgBox Zelle.DirectPrecedents(N).Address
Next N
End If
Next Zelle
End Sub
Gruß
Reinhard