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]