Registername per VBA in Zelle eintragen
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
Antwort schreiben
Antwort 1 von Beverly vom 07.10.2022, 18:07 Options
Hi,
diese Funktion funktioniert nur bei gespeicherten Arbeitsmappen.
Bis später,
Karin
Antwort 2 von cam vom 07.10.2022, 18:54 Options
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
Antwort 3 von Beverly vom 07.10.2022, 19:14 Options
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
Antwort 4 von nighty vom 07.10.2022, 20:19 Options
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")))