2k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo,

ich benötige ein Makro, bei dem der Registername mit einem Makro in die Zelle A1 eingetragen wird. Bei Änderung des Registernames soll die Zelle A1 aktuallisiert werden. Die Funktion
=TEIL(ZELLE("dateiname");FINDEN("]";ZELLE("dateiname"))+1;255) ist nicht ausreichend. Für eure Bemühungen bereits im voraus ein Danke.

Cam

4 Antworten

0 Punkte
Beantwortet von beverly Experte (3.5k Punkte)
Hi,

diese Funktion funktioniert nur bei gespeicherten Arbeitsmappen.

Bis später,
Karin
0 Punkte
Beantwortet von
Hallo,

das diese Funtion nur nach dem Speichern funktioniert ist mir bekannt. Ich möchte nicht diese Funktion verwenden, sondern benötige ein Makro für mein Vorhaben.

Cam
0 Punkte
Beantwortet von beverly Experte (3.5k Punkte)
Hi,

das Ändern des Registernamens löst kein auswertbares Ereignis aus, weshalb du nur die Möglichkeit hast, die Funktion ZUFASLLSZAHL() in eine Zelle zu schreiben. Dann kannst du das Worksheet_Calculate Ereignis verwenden:
Private Sub Worksheet_Calculate()
Application.EnableEvents = False
Range("A1") = ActiveSheet.Name
Application.EnableEvents = True
End Sub

Die Frage bleibt: weshalb ist diese Funktion nicht ausreichend? Weshalb muss man VBA für etwas "missbrauchen" was auch anders und besser lösbar ist? Das Calculate Ereignis wird auf dem o.g. Weg jedes Mal ausgelöst, sobald im Tabellenblatt etwas geändert wird, da sich das Ergebnis der Funktion ZUFALLSZAHL() dabei auch stets ändert.

Bis später,
Karin
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi all :-)

noch 2 varianten

gruss nighty

als function
Function TabName()
Application.Volatile
TabName = ActiveSheet.Name
End Function


als formel
=RECHTS(ZELLE("Dateiname");LÄNGE(ZELLE("Dateiname"))-FINDEN("]";ZELLE("Dateiname")))
...