Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Taste F9 automatisieren

Taste F9 automatisieren
09.06.2005 16:59:06
Paul
Hallo Leute,
ich habe ein kleines Problem bei dem Ihr mir hoffentlich helfen könnt.
Ich habe ein kleines VB-Makro welches mir das Datum der letzten Speicherung eines Dokumentes ausgibt (hab ich hier aus dem Forum)...dies sieht folgendermaßen aus:

Function savedate()
Application.Volatile
savedate = ActiveWorkbook.BuiltinDocumentProperties(12).Value
End Function

aufgerufen wird es dann in der Excel-Mappe mit "=senddate()".
Das Problem ist, daß das aktuelle Datum quasie erst angezeigt wird, wenn ich Speichere und dann mittels der Taste F9 aktualisiere oder das Dokument nach der Speicherung neu öffne.
Besteht irgendwie die Möglichkeit nach dem Drücken der Speichertaste oder der Tastenkombination STRG+S, also nach dem Speichern des Dokumentes das Drücken der F9 Taste zu automatisieren? Ich möchte also das Datum der letzten Speicherung sofort nach dem Speichern angezeigt haben ohne eine zusätzliche Taste drücken zu müssen.
Ich hoffe Ihr könnt mir eine kleine Hilfestellung geben.
Danke schonmal!
Paul S.
Anzeige

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Taste F9 automatisieren
09.06.2005 17:34:37
Galenzo
so?

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Calculate
End Sub

Viel Erfolg!
AW: Taste F9 automatisieren
09.06.2005 19:08:58
Paul
Danke Galenzo für die schnelle Antwort!
Ich hab grad das Problem, daß meine ürsprüngliche Funktion grad garnicht mehr funktioniert. In der Excel-Mappe bekomme ich bei dem Aufruf "=savedate()" nur "#NAME?" zurück und nicht mehr das Datum. Was kann ich da denn jetzt falsch gemacht haben? Ich habe an sich nix verändert...es sind ja auch nur ein paar Zeilen Code!?
Falls ich das Problem noch lösen kann gleich eine Frage noch drangehängt:
Wo füge ich Deinen Code in die Funktion ein? Ich frage, da ich eigentlich wirklich keine Ahnung von VB habe.
Also, wenn du noch eine Antwort für mich hast, wäre ich sehr erfreut darüber.
Danke!
MfG
Paul S.
Anzeige
Bemerkung zum Funktionsaufruf
10.06.2005 09:19:53
Galenzo
die Funktion Savedate mußt du aber auch mit "=Savedate" aufrufen
(und nicht etwa mit "=Senddate" - wie du schreibst)
AW: Bemerkung zum Funktionsaufruf
10.06.2005 09:48:16
Paul
Hi Galenzo,
ja das war ein Verschreiber mit dem "senddate" von mir. Ist der Code so in Ordnung wie ich ihn im vorigen Beispiel gezeigt habe? Er aktualisiert nämlich nicht zum Zeitpunkt der Speicherung!?
p.s.: sorry für die Doppelposts...ich hab wohl zu oft auf Abschicken geklickt, nachdem sich das Forum nicht gerührt hat.
Anzeige
AW: Taste F9 automatisieren
10.06.2005 09:55:31
Galenzo
und wenn du das Datum direkt im Workbook_BeforeSave-Ereignis schreiben läßt? So:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Sheets("Tabelle1").Range("A1") = BuiltinDocumentProperties(12).Value
End Sub

Viel Erfolg!
Anzeige
AW: Taste F9 automatisieren
10.06.2005 10:12:02
Paul
Tut mir Leid Galenzo aber ich verstehe nicht ganz was du meinst. Das ist ja keine Funktion mehr. Wie soll ich die in der Excel-Mappe aufrufen?
Es funktioniert einfach nicht...ich hab keine Ahnung warum.
AW: Taste F9 automatisieren
10.06.2005 12:17:22
Galenzo
OK - dann von vorn..
Jede Mappe hat sog. "Ereignisse", bei denen bestimmte Prozeduren abgearbeitet werden.
Solche Ereignisse werden z.B. bei Änderung einer Zelle, beim Klicken in der Tabelle, beim Öffnen einer Mappe oder aber auch - und dieses Ereignis werden wir uns hier zunutze machen - beim Speichern.
Das Ereignis, das beim Speichern einer Mappe ausgelöst wird heißt "Workbook_BeforeSave"
Alles, was in der zugehörigen Ereignis-Prozedur steht, wird in diesem Moment abgearbeitet.
Wie findest du diese Prozedur?
Zunächst mit ALT+F11 zum VBA-Editor. Dort siehst du links die einzelnen "Module" deiner Mappe. Es gibt eins für jede Tabellenseite und dann noch eins, das für die ganze Mappe gilt. Das heißt "DieseArbeitsmappe". Da müssen wir hin. Doppelklicke darauf. Rechts kommt jetzt ein leeres weiße Seite. Darüber siehst du 2 Combo-Boxen. n der linken steht momentan noch "(Allgemein)". Klicke dort und wähle "Workbook". Rechts müßte nun "Open" stehen (das wäre die Prozedur, die beim Öffnen der Mappe abgearbeitet wird. Dort wählst du nun statt "Open" das Ereignis "BeforeSave" aus. Es wird ein leeres Prozedurgerüst angelegt. Und dorthinein schreibst du nun deine Anweisung:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Sheets("Tabelle1").Range("A1") = BuiltinDocumentProperties(12).Value
End Sub

Viel Erfolg!
Anzeige
Aktualisierung nach Bearbeitung
13.06.2005 16:54:07
Paul
Hallo Galenzo,
mit Hilfe deiner exzellenten Erklärung habe ich es nun geschafft...Vielen Dank!!
Aber sag mal gibt es vielleicht auch eine Funktion die die eine Zelle aktualisiert, wenn ich drucken möchte (wie ich die eventuell mögliche Funktion an die Druckauftrag binde weiss ich ja nun). Wenn also ein Benutzer ein Dokument öffnet und darin arbeitet und anschließend sein Werk ausdrucken möchte wäre es prima, wenn das Datum der letzten Änderung (nicht Speicherung!) noch mit drin steht.
Läßt sich so etwas realisieren?
Grüße
Paul S.
Anzeige
AW: Taste F9 automatisieren
13.06.2005 19:08:32
Paul
Hi Galenzo,
ich bins nochmal.
Ich stelle gerade fest, daß der Wert nicht immer richtig aktualisiert wird. Mir scheint es als ob er erst bei jedem zweiten Speichern richtig aktualisiert.
Woran kann das liegen?
AW: Taste F9 automatisieren
09.06.2005 19:30:47
Paul
Also jetzt funktioniert das ürsprüngliche Script....was das Problem war weiss ich aber nicht.
Aber ich bekomme deine Zeilen Code nicht zum laufen. Wenn ich Speichere, dann wird das Datum leider nicht aktualisiert.
Was muß ich machen?
Anzeige
AW: Taste F9 automatisieren
10.06.2005 09:40:22
Paul
Neuer Tag, neues Glück.
Ich hab die paar Zeilen Code jetzt in das Script rein bekommen. Das sieht jetzt so aus:
Private

Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Calculate

Function savedate()
Application.Volatile
savedate = ActiveWorkbook.BuiltinDocumentProperties(12).Value
End Function

Allerdings verhält es sich noch nicht ganz wie ich es mir wünsche. Der Wert wird erst aktualisiert, wenn ich nach dem Drücken des Speicherbuttons nochmal einen Wert ändere und dann in eine neue Zelle gehe oder Enter drücke. Kann der Wert nicht gleich aktualisiert werden, wenn ich Speichere?
Anzeige
AW: Taste F9 automatisieren
10.06.2005 09:40:32
Paul
Neuer Tag, neues Glück.
Ich hab die paar Zeilen Code jetzt in das Script rein bekommen. Das sieht jetzt so aus:
Private

Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Calculate

Function savedate()
Application.Volatile
savedate = ActiveWorkbook.BuiltinDocumentProperties(12).Value
End Function

Allerdings verhält es sich noch nicht ganz wie ich es mir wünsche. Der Wert wird erst aktualisiert, wenn ich nach dem Drücken des Speicherbuttons nochmal einen Wert ändere und dann in eine neue Zelle gehe oder Enter drücke. Kann der Wert nicht gleich aktualisiert werden, wenn ich Speichere?
Anzeige
AW: Taste F9 automatisieren
10.06.2005 09:40:47
Paul
Neuer Tag, neues Glück.
Ich hab die paar Zeilen Code jetzt in das Script rein bekommen. Das sieht jetzt so aus:
Private

Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Calculate

Function savedate()
Application.Volatile
savedate = ActiveWorkbook.BuiltinDocumentProperties(12).Value
End Function

Allerdings verhält es sich noch nicht ganz wie ich es mir wünsche. Der Wert wird erst aktualisiert, wenn ich nach dem Drücken des Speicherbuttons nochmal einen Wert ändere und dann in eine neue Zelle gehe oder Enter drücke. Kann der Wert nicht gleich aktualisiert werden, wenn ich Speichere?
Anzeige
AW: Taste F9 automatisieren
10.06.2005 09:41:35
Paul
Neuer Tag, neues Glück.
Ich hab die paar Zeilen Code jetzt in das Script rein bekommen. Das sieht jetzt so aus:
Private

Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Calculate

Function savedate()
Application.Volatile
savedate = ActiveWorkbook.BuiltinDocumentProperties(12).Value
End Function

Allerdings verhält es sich noch nicht ganz wie ich es mir wünsche. Der Wert wird erst aktualisiert, wenn ich nach dem Drücken des Speicherbuttons nochmal einen Wert ändere und dann in eine neue Zelle gehe oder Enter drücke. Kann der Wert nicht gleich aktualisiert werden, wenn ich Speichere?
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

F9 in Excel automatisieren


Schritt-für-Schritt-Anleitung

Um die F9-Taste in Excel automatisch auszulösen, wenn Du eine Datei speicherst, kannst Du ein einfaches VBA-Skript verwenden. Hier sind die Schritte:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Wähle das richtige Modul: In der Projektansicht links, doppelklicke auf "DieseArbeitsmappe".

  3. Füge den folgenden Code ein:

    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
        Calculate
    End Sub
  4. Schließe den VBA-Editor: Drücke ALT + Q, um zurück zu Excel zu gelangen.

  5. Teste das Skript: Speichere die Arbeitsmappe und überprüfe, ob die Berechnungen automatisch aktualisiert werden.


Häufige Fehler und Lösungen

  • Fehler: Alt F9 funktioniert nicht
    Lösung: Stelle sicher, dass das VBA-Skript korrekt in "DieseArbeitsmappe" eingefügt wurde. Manchmal kann es helfen, Excel neu zu starten.

  • Fehler: Excel F9 funktioniert nicht
    Lösung: Überprüfe, ob die Funktion Calculate in Deinem Skript korrekt geschrieben ist. Ein einfaches Calculate sollte die Aktualisierung der Werte auslösen.

  • Fehler: #NAME? bei der Verwendung von =savedate()
    Lösung: Achte darauf, dass der Funktionsname genau stimmt. Der Aufruf muss =savedate() und nicht =senddate() sein.


Alternative Methoden

Wenn Du alternative Methoden zur Automatisierung der F9-Taste in Excel suchst, kannst Du auch die folgenden Ansätze in Betracht ziehen:

  1. Verwende die Workbook_Open-Ereignisprozedur, um die Berechnung beim Öffnen der Arbeitsmappe zu sichern:

    Private Sub Workbook_Open()
        Calculate
    End Sub
  2. Erstelle ein Makro, das gezielt die Taste F9 simuliert:

    Sub AutoF9()
        Application.SendKeys "{F9}"
    End Sub
  3. Nutze die Excel-Funktion NOW() für eine Echtzeit-Aktualisierung in der Zelle:

    =NOW()

Praktische Beispiele

Hier sind einige praktische Beispiele, wie Du die F9-Funktion in Excel nutzen kannst:

  • Datum der letzten Speicherung: Erstelle eine Funktion, die das Datum der letzten Speicherung automatisch in Zelle A1 aktualisiert:

    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
        Sheets("Tabelle1").Range("A1").Value = Now
    End Sub
  • Verwendung von Application.Volatile in Deiner savedate-Funktion, um sicherzustellen, dass die Funktion bei jeder Berechnung aktualisiert wird:

    Function savedate() As Date
        Application.Volatile
        savedate = ActiveWorkbook.BuiltinDocumentProperties("Last Author").Value
    End Function

Tipps für Profis

  • Verwende Application.OnTime, um Berechnungen zu einem festgelegten Zeitpunkt automatisch auszuführen.

  • Füge Fehlerbehandlung in Deinen VBA-Code ein. Damit kannst Du sicherstellen, dass Dein Makro auch bei unerwarteten Fehlern nicht abstürzt.

  • Nutze die Worksheet_Change-Ereignisprozedur, um Zellen bei Änderungen automatisch zu aktualisieren.


FAQ: Häufige Fragen

1. Wie kann ich die F9-Taste in Excel dauerhaft aktivieren?
Du kannst die F9-Taste nicht dauerhaft aktivieren, aber durch das Einfügen von VBA-Skripten kannst Du die Aktualisierung automatisieren.

2. Was mache ich, wenn das Skript nicht funktioniert?
Stelle sicher, dass Du das Skript korrekt eingefügt hast und dass die Makros in Deinen Excel-Optionen aktiviert sind.

3. Gibt es eine Möglichkeit, die F9-Taste für spezifische Zellen zu aktivieren?
Ja, Du kannst das Skript so anpassen, dass es nur für bestimmte Arbeitsblätter oder Zellen ausgeführt wird, indem Du entsprechende Bedingungen in Deinen VBA-Code einfügst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige