Hallo Heinz,

beide Beobachtungen kann ich bestätigen.

Heinz Teucher schrieb:

Speichere ich das Dokument und öffne es erneut, bekomme ich den Fehler "BASIC-Laufzeitfehler. Objektvariable nicht belegt" für die Zeile

Tabellenname = thisComponent.Sheets(Nummer).Name

Das liegt wohl daran, dass beim Öffnen der Datei die Formel neu berechnet wird und der Code schon durchlaufen wird, obwohl das Dokument mit all seinen Informationen noch nicht vollständig geladen ist.

Die Fehlermeldung ließe sich durch ein freches "on error resume next" in der Basic-Funktion verhindern. Die Funktion liefert dann aber auch kein Ergebnis, sodass der Tabellenname nach dem Öffnen zunächst nicht wie gewünscht erscheint. Man müsste also nach dem Öffnen nochmal eine Neuberechnung der Formel anstoßen. Das Neuberechnen ist zugleich ein Thema zu Deinem zweiten Punkt:

Ausserdem fällt mir auf, dass beim Umbenennen eines Tabellenblattes der angezeigte Zellinhalt sich nicht verändert.

Das liegt daran, dass die Formel nicht neu berechnet wird. Sie wird im Normalfall beim Öffnen des Dokuments neu berechnet und dann, wenn sich eine Zelle, auf die sich die Formel bezieht, ihren Wert ändert.

Nun könnte man überlagen, ob man das Neuberechnen mit einem ereignisgesteuerten Makro anstoßen könnte oder ob es andere faule Tricks gibt.

Aber da würde ich vorher nochmal schauen, ob es am Ende nicht simpler ist, man überträgt den Namen des Tabellenblattes manuell als festen Textwert in die Zelle.

Daneben: Konstruktionen mit 12 Tabellenblättern, je eines für einen Monat, und dazu einem dreizehnten Blatt erscheinen mir suspekt und wecken den Verdacht einer möglicherweise generell ungünstigen Grundstruktur, die aus Unkenntnis über den Datenpiloten resultieren könnte.

Gruß

Stefan


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Antwort per Email an