Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1968to1972
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zirkelbezug überschreiben

Zirkelbezug überschreiben
21.03.2024 14:46:35
ThorstenBergk
Hallo zusammen,

ich bin heute zum ersten Mal auf eine Zirkelbezug-Warnung gestoßen, als ich meine monatliche Finanzübersicht verfeinern wollte.
Ich habe mir vor kurzem eine kleine Tabelle erstellt, die mir automatisch ausrechnet, in welcher Woche des Monats ich wie viel Geld transferiert habe. Also "wartet" Excel darauf, dass der 07./08. eines Monats anbricht und rechnet dann aus, wie viel Geld ich vom Monatsbeginn bis zum 07. des Monats transferiert habe. Das geht so weiter, bis das Monatsende erreicht ist. Das ist aber leider nur einen Tag zu sehen, nämlich am manuell festgelegten Monatsende (im Februar diesen Jahres der 29.) Dann verschwindet der Wert wieder, da die Zählung der Tage mit dem neuen Monat durch =TAG(HEUTE()) von vorne beginnt.
Um das zu umgehen, wollte ich, sobald das Monatsende erreicht ist, die letzte zählende Zelle überschreiben und die enthaltene Formel durch eine einfache Zahl ersetzen. Also statt der Formel =WENN(TAG(HEUTE())>=M2;SUMME...{ich überspringe das hier, ist zu lang}...) soll nur noch (fiktive Zahl) 2000€ drin stehen.

Das habe ich in einem zweiten Dokument ausprobiert:
Zelle A1: 0
Zelle B1: =WENN(A1=1;B1="Hallo")
und zack kam die Zirkelbezugs-Warnung. Ich weiß, dass ich damit die Zelle überschreiben würde, aber das ist auch genau das, was ich machen will.

Hat jemand von euch dafür eine Lösung?

Danke im Voraus!!!

Liebe Grüße,
Thorsten

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zirkelbezug überschreiben
21.03.2024 14:53:45
Yal
Hallo Thorsten,

Wenn Du in B1 den Wert von A1 haben möchte, dann lautet die Formel dazu
=A1
und nicht
=B1=A1

dementsprechend sollte dein WENN in B1 nicht
Zelle B1: =WENN(A1=1;B1="Hallo")
sondern
Zelle B1: =WENN(A1=1;"Hallo")

Prüfe in der Onlinehilfe, wie Wenn funktioniert.

VG
Yal
AW: Zirkelbezug überschreiben
26.03.2024 21:24:22
HerrTorti
Hi Yal,

Das ist ja eben genau nicht das was ich möchte. Ich möchte, dass die Formel gelöscht und durch ein simples "Hallo" ersetzt wird. Mit mehreren Zellen kann ich mir helfen, aber genau die gleiche Zelle soll überschrieben werden.

Vg
Anzeige
AW: Zirkelbezug überschreiben
27.03.2024 08:55:44
Oppawinni
Zuerst mal ein Tipp,
wenn du hier einen Thread auf machst, dann solltest du schon dran bleiben, weil der nach sieben Tagen im Archiv verschwindet.
Jetzt hast du 5 Tage gebraucht um dir das wieder anzuschauen?! Dann ist das ja super wichtig.
Zu deinem Thema.
Man könnte zwar per VBA einfach "Hallo" in Zelle B2 schreiben lassen, wenn in Zelle A1=1 ist, aber was passiert dann?
In Zelle B2 steht, sobald Zelle A1 einmal 1 war "Hallo" und ändert sich nicht mehr, bzw. wird wieder mit "Hallo" überschrieben,
wenn A1 wieder 1 ist, aber unter dem Strich wird ab dann in B2 aber immer Hallo stehen.
Ist es das was du willst ?
Da frage ich mich, welchen Sinn das haben soll.
Würde man dafür aus einer .xlsx eine .xlsm machen?
Problem dürfte dann ohnehin sein, dass du dein Blatt schreibgeschützt haben willst und es dann natürlich zusätzlichen Code bedeuten würde, da hinein zu schreiben.
Die Selbstmord-Formel, also eine die sich selbst durch einen Wert ersetzt, gibt es jedenfalls nicht.

Anzeige
AW: Zirkelbezug überschreiben
27.03.2024 11:53:07
Oppawinni
Wenn es nur darauf ankäme, dass in Zelle B2 der Wert "Hallo" erscheint, wenn in A1 einmal der Wert 1 aufgetaucht ist, dann müsste man ja eine Formel in B2 nicht unbedingt löschen, aber ohne VBA wird auch das nichts. Ein Blattschutz dürfte da mit der Methode auch keine Probleme machen:

Man könnte einen Namen definieren (Namensmanger), z.B. MyHallo und diesem Namen den Wert =Falsch zuweisen.
in B2 dann die Formel:
=WENN(MyHallo;"Hallo";"")
Im Codebereich der Tabelle, wenn es sich bei A1 um eine berechnete Zelle handelt dann:
Private Sub Worksheet_Calculate()

If Range("A1").Value = 1 Then
ThisWorkbook.Names("MyHallo").RefersTo = True
End If
End Sub

Wenn es sich bei A1 um eine Eingabezelle handelt dann:
Private Sub Worksheet_Change(ByVal Target As Range)

If Intersect(Target, Range("A1")) Is Nothing Then Exit Sub
If Range("A1").Value = 1 Then
ThisWorkbook.Names("MyHallo").RefersTo = True
End If
End Sub

Das hätte den Charme, dass man das auch leicht über den Namensmanager wieder auf Anfang setzten könnte indem man dem Namen wieder =Falsch zuweist.
Im Grunde könnte man auch gleich dem Namen ="" zuweisen, die Formel in B2 auf =MyHallo stellen und per VBA dann, wenn Zelle A1 den Wert 1 hat, dem Namen MyHallo den Wert ="Hallo" zuweisen. Aber vielleicht will man ja den Schalter auch noch anderweitig verwenden...aber...

..ich schätze mal, dass es tatsächlich um etwas anderes geht, als ich denke und ich mir völlig für die Hühner den Kopf mache, wie man das lösen könnte.
Anzeige
AW: Zirkelbezug überschreiben
28.03.2024 12:21:30
HerrTorti
Hi Oppawinni,

Danke! Das ist genau die Sache, die ich haben will. Eine Selbstmordformel. Sobald das Ereignis eintritt, soll die Tabelle dadurch eingefroren werden. Schade, dass das ohne VBA nichts wird. Danke für die Antwort und deine Zeit!
Zum Thema Zeit, ich bin aktuell im Urlaub und hatte nicht die Lust, mich hier mit Excel zu beschäftigen. Danke für den Hinweis!
AW: Zirkelbezug überschreiben
21.03.2024 15:08:45
Onur
Zelle B1: =WENN(A1=1;B1="Hallo") ?????
Ernsthaft ?
Und warum glaubst du, du wärest "Excel gut" ?
AW: Zirkelbezug überschreiben
21.03.2024 18:53:41
Oppawinni
Och Onur,
reite doch bitte nicht immer auf dieser Selbsteinschätzung herum, ich denk auch immer ich wäre gut, weiß aber auch, dass ich da und dort Defizite habe. Man unterschätzt halt leicht die Möglichkeiten, die Excel bietet, wenn man z.B. nur einfache Sachen damit macht und denkt, man wüsste schon das Wesentliche, weiß also nicht, dass man eigentlich nichts weiß. Gut, ok, das hier sah wirklich nach Anfänger aus. Aber lass die Kritik an der Selbsteinschätzung bitte einfach mal weg.
Anzeige
AW: Zirkelbezug überschreiben
21.03.2024 19:39:39
Onur
Wenn es sowieso egal ist, was die Leute als Level angeben angeben, kann man es doch genausogut weglassen, oder ?
Wie kann man, ohne rot zu werden, behaupten, man wäre gut in Excel, und so eine (an sich simple) Formel wie "WENN(A1=1;B1="Hallo") " abliefern, die auf so vielen Ebenen falsch ist, dass einem schlecht wird. Sie beweist, dass er nicht mal weiss, wie eine Formel (geschweige denn die WENN-Funtion) überhaupt funktioniert.
Sorry - Ich versuche mich ja inzwischen zurückzuhalten, aber das war jetzt ein Extremfall.
AW: Zirkelbezug überschreiben
26.03.2024 21:34:34
HerrTorti
Hi Onur,

Danke für deine ausführliche und äußerst hilfreiche Antwort zum Thema "Selbsteinschätzung"! Da hab ich einen kleinen Fehler gemacht und mich überschätzt. Kein Grund gleich auszuticken. Bitte gib mir doch stattdessen konstruktive Hilfe. Das würde den Thread nicht unnötig verlängern.
Und den Konter auf den doppelten Beitrag kannst du dir auch sparen. Ich hatte auf diesen Beitrag geantwortet und er wurde woanders eingefügt ;)

LG
Anzeige
AW: Zirkelbezug überschreiben
26.03.2024 21:42:42
Onur
Yal hat doch schon längst mit
=WENN(A1=1;"Hallo") 

dir die Lösung gegeben.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige