DE Monatskalender horizontal mit Suchläufen

Dieser Artikel bezieht sich auf das RagTime-Dokument im Beitrag : http://experts.ragtime.de/experts/node/4242

Die unter dem o.g. Link zu findende RagTime Downloaddatei arbeitet im Prinzip einwandfrei. Einziges Manko: Wenn im "Rechenblatt R1" auf dem "Layout Kalender" eine Zelle aktiviert ist (angeklickt ist) und es wird dann eines der Einblendmenüs auf dem Layout geändert, wird der Rechenprozess nicht abgeschlossen und die Hälfte des Kalenders wird nicht dargestellt.

Im parallel dazu geöffneten Formelblatt lässt sich dann in Spalte A ein graues Flackern beobachten, bis der Prozess schließlich mit einer "1" in der Steuerzelle abschließt. Sobald man (unabhängig davon) im Layout auf einen leeren Bereich des Layouts klickt (also außerhalb des Rechenblattes), wird der Rechenprozess ordentlich bis zum Ende durchgeführt und das Ergebnis ist korrekt.

Was kann die Ursache der hier beschriebenen Fehlfunktion sein. Entdeckt jemand einen Fehler in den Formeln des Rechenblattes "R Formeln" (s. Inventar)?

Über eine Rückmeldung würde ich mich freuen.
Gruß, Michael

NB.:
Bei dem im Formelaufbau sehr ähnlichen Dokument im Beitrag : http://experts.ragtime.de/experts/node/4243 passiert die oben beschriebene Fehlfunktion nicht.

Re: DE Monatskalender horizontal mit Suchläufen

#13968 On 10 Mai, 2026 18:43 Thomas Kaegi said,

Hallo Michael

Das Problem steckt in der Formel in Zelle A5. Die Funktion „SetzeZelle“ kann in einem Bereich nicht so verwendet werden, wie du das gemacht hast. Ich habe das auch nicht gewusst, aber mit ein wenig probieren bestätigt gefunden. Statt der Funktion „Suchlauf“ musst du verschachtelte V- und HSuchläufe verwenden. Die Formel in Zelle A5 kann also so heissen:

Wenn(A1=1;VSuchlauf(R1!$B$1:$B$100;1;;HSuchlauf(R1!$B$1:$AF$1;1;;Wenn(LfdIndex(1)>1;SetzeZelle('';R1![2]$B$1:[2]$AF$100;LfdIndex(1);LfdIndex))
&SetzeZelle('';R1![3]$B$1:[3]$AF$100;LfdIndex(1);LfdIndex)))&SetzeZelle(A1+1;A1))

Ein paar Erläuterungen dazu:

  • Die Bereiche der beiden Suchläufe sind absolut irrelevant – es ist also egal, dass sie in obiger Formel Lage 1 und nicht Lage 2 oder 3 adressieren. Wichtig ist einfach, dass der VSuchlauf über 100 Zeilen läuft und der HSuchlauf über 31 Spalten. Der Bereich ist nur für den Zielbereich der SetzeZelle-Befehle relevant.
  • Der Startwert der beiden Suchläufe ist irrelevant, kann also ganz weggelassen (muss nicht auf 0 gesetzt) werden.
  • Lage 2 und 3 können in einem Durchlauf gelöscht werden. Du hattest 2 Suchläufe – es braucht nur eine Suchlauf-Verschachtelung, dafür als Folgewert je einen SetzeZelle-Befehl für die beiden Rechenblattlagen.
  • Dass in Lage 2 die erste Zeile nicht gelöscht werden soll, wird durch die Wenn-Bedingung für den ersten SetzeZelle-Befehl gewährleistet.

Du hast in fast allen Formeln die Funktion „Suchlauf“ mit eindimensionalen Bereich verwendet. Ich empfehle, dafür immer entweder VSuchlauf oder HSuchlauf zu verwenden. Die Formel ist leichter lesbar, wenn die Suchrichtung sofort erkennbar und nicht nur aus den Koordinatenangben ablesbar ist.

Gruss, Thomas