Datenchaos wegen Target.Calculate
20.11.2025 16:10:26
Kolja
ich habe Probleme mit der Anwendung von Target.Calculate (für bedingte Formatierung zur Zeilenfärbung).
Folgende zwei Beispieldateien seien gegeben:
Ich habe zwei XSLM-Dateien erstellt (Test-01.xslm und Test-02.xslm).
Datei Test-01.xslm beinhaltet:
- Blatt 1 namens "Übersicht" eine Übersichtstabelle
- weitere Blätter 2 bis 6 namens "Probe 01" bis "Probe 05"
---> auf den Blättern Nr. 2 bis 6 ist jeweils in Zelle A1 der Wert "Probewert 0001" bis "Probewert 0002" eingetragen.
---> auf Blatt 1 gibt es eine Übersichtstabelle im Bereich B6:D23 mit 3 Spalten: Blatt-Nummer, Blatt-Name und Zellwert-A1 :
Spalte 1 gibt Blattnummern vor, Spalte 2 ermittelt aus betreffendem Blatt den Blattnamen, Spalte 3 holt aus betreffendem Blatt den Wert aus Zelle A1
Datei Test-02.xslm beinhaltet:
- Blatt 1 namens "Übersicht" eine Übersichtstabelle
- weitere Blätter 2 bis 13 namens "AAAAA" bis "LLLLLL"
---> auf den Blättern Nr. 2 bis 13 ist jeweils in Zelle A1 der Wert "aa" bis "ll" eingetragen.
---> auf Blatt 1 gibt es eine Übersichtstabelle im Bereich B6:D23 mit 3 Spalten: Blatt-Nummer, Blatt-Name und Zellwert-A1 :
Spalte 1 gibt Blattnummern vor, Spalte 2 ermittelt aus betreffendem Blatt den Blattnamen, Spalte 3 holt aus betreffendem Blatt den Wert aus Zelle A1
Des weiteren wurde in beiden Dateien jeweils der Tabellenbereich B6:C23 auf Blatt 1 mit einer bedingten Formatierung "Füllung"
mit folgender Regelformel =Zeile()=Zelle("Zeile") versehen.
In VBA wurde bei beiden Dateien jeweils für dieses Blatt 1 unter Worksheet folgender Code eingegeben:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Target.Calculate
End Sub
--------------------------------------
Fehlergeschehen:
Sofern ich nur eine der beiden Tabellen öffne, funktioniert alles so, wie es soll:
- die korrekten Blattnamen in die Übersichtstabelle in Abhängigkeit der Blattnummern in Spalte 1 zugeordnet
- die zugehörigen Zellwerte der jeweiligen Zelle A1 werden korrekt ebenfalls dazugeordnet.
Alles scheint perfekt.
Jedoch:
Sobald ich beide Dateien öffne, geschehen seltsame Datenübernahmen aus der jeweilig anderen Datei wie folgt:
Bin ich in Datei "Test-01" und klicke da Zellen im Tabellenbereich an, dann ist der Dateninhalt aus Datei "Test-01" plötzlich auch in der Übersichtstabelle von Datei "Test-02" aufgeführt und es wird auch die Bedingte Formatierung in Test-02 ausgelöst in Anhängigkeit von angeklickten Zellen in Test-01.
Und dies auch umgekehrt, wenn ich in Test-02 im Tabellenbereich klicke.
Die seltsamen Datenübertragungen verschwinden wieder, wenn ich Taste F9 drücke.
Nun habe ich ausgetestet:
Solange in VBA die Befehlszeile Target.Calculate existiert, dann erfolgen die Datenübernahmen und Auslösung Bedingter Formatierungen gegenseitig jeweils in Abhängigkeit, welche Tabelle gerade aktiv ist und Zelle angeklickt wird. Erst durch drücken der Taste F9 wird der Sollzustand wieder hergestellt.
Wenn ich in VBA meinetwegen nur der Datei Test-01 die Befehlszeile Target.Calculate habe aber nicht mehr in Datei Test-02, dann erfolgt diese seltsame Datenübertragung nur von Datei Test-01 zu Test-02, aber nicht andersherum. Auch wird nur die bedingte Formatierung in Test-02 durch Zellanwahl in Test-01 beeinflusst, nicht aber umgekehrt.
Habe ich in beiden Dateien die Befehlszeile Target.Calculate gar nicht mehr, dann geschehen auch keine gegenseitigen Datenübertragungen mehr, aber eben auch keine bedingter Formatierungen mehr zur Einfärbung aktiver Zeilen.
--------------------------------------
Ich vermute einmal ganz vorsichtig, dass die Benutzung von Target.Calculate zu diesen ominösen ungewollten Effekten führt, dass das gesamte Excelprogramm sich die aktive Zeile der aktiven Datei merkt und meine indirekten Bezüge dazu verleiten, sich dann von dort die Daten zu holen statt von der eigenen Datei.
Was die Indirekten Bezüge anbelangt: Ja, ich weiß, das die volatil sind. Ich habe mich bewusst dafür entschieden, da es für mein Ansinnen die beste Lösung zu sein scheint.
Aber dennoch möchte ich die Einfärbung der aktiven Zeilen beibehalten, nur eben ohne Verursachung der Datenübernahmen von anderen Dateien und ohne von anderen Dateien gesteuert zu werden.
-----------------------------------------
Beide Testdateien hier zum Download:
https://www.herber.de/bbs/user/179668.xlsm
https://www.herber.de/bbs/user/179669.xlsm
Beste Grüße
Danny
Anzeige