Anzeige
Archiv - Navigation
1240to1244
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Undo

Undo
Andi
Hallo,
möchte nach einer falschen Aktion via VBA ine einer Exceltabelle wieder den alten Zustand herstellen.
Im Prinzip stellt das ja kein Problem dar. Datei schliessen ohne die Änderungen zu speichern und wieder öffnen.
Das würde ich gerne via VBA realisieren. Das VBA Projekt soll nicht in der persönlichen Arbeitsmappe integriert sein, sondern in der zu bearbeitenen Arbeitsmappe.
Anbei Procedure, die ja nicht funktionieren kann. Habt ihr eine Idee? Danke. Gruß Andi

Function OeffnenSchliessen()
Thisworkbook.close False
Workbooks.open Thisworkbook
End Function

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Undo
30.11.2011 17:23:14
Josef

Hallo Andi,
probier mal.
Sub openMe()
  Application.OnTime Now + TimeSerial(0, 0, 3), "dummy", , True
  ThisWorkbook.Close False
End Sub


Sub dummy()
  
End Sub



« Gruß Sepp »

Anzeige
ganz schön tückisch ;-) owT
30.11.2011 19:53:38
Rudi
Closed
01.12.2011 08:41:10
Andi
hallo Sepp, Rudi
Die Methode "Application.OnTime" kenne ich leider noch nicht.
Es ist immer wieder verblüffend etwas Neues zu erfahren. Jetzt muß ich mich natürlich schlau lesen, was das Teil macht. So einfach mal abkupfern und probieren ist nicht meine Kragenweite.
Insbesondere "ganz schön tückisch" muß verstanden werden. ;-)
Danke für Eure Hilfe.
Gruß Andi
PS: Jetzt ist es klar, die Sub Dummy wird nach drei Sekunden ausgeführt, dafür muss aber die zuvor geschlossene Arbeitsmappe wieder geöffnet werden. Wie "geil" ist das den? Sepp, Du bist der Hammer.
MS Excel-Hilfe
Excel-Entwicklerreferenz
Application.OnTime-Methode
Bewirkt, dass eine Prozedur zu einem bestimmten Zeitpunkt in der Zukunft (entweder zu einer bestimmten Zeit oder nachdem eine bestimmte Zeitspanne vergangen ist) ausgeführt wird.
Syntax
Ausdruck.OnTime(EarliestTime, Procedure, LatestTime, Schedule)
Ausdruck Eine Variable, die ein Application-Objekt darstellt.
Parameter
Name Erforderlich/Optional Datentyp Beschreibung
EarliestTime Erforderlich Variant Die Zeit, zu der diese Prozedur ausgeführt werden soll.
Procedure Erforderlich String Der Name der auszuführenden Prozedur.
LatestTime Optional Variant Der späteste Zeitpunkt zum Ausführen der Prozedur. Wenn beispielsweise LatestTime auf EarliestTime + 30 festgelegt wird und Microsoft Excel sich nicht für EarliestTime im Modus Ready, Copy, Cut oder Find befindet, da eine andere Prozedur ausgeführt wird, wird in Microsoft Excel 30 Sekunden auf das Beenden der ersten Prozedur gewartet. Wenn sich Microsoft Excel innerhalb von 30 Sekunden nicht im Modus Ready befindet, wird die Prozedur nicht ausgeführt. Wenn dieses Argument nicht angegeben wird, wartet Microsoft Excel, bis die Prozedur ausgeführt werden kann.
Schedule Optional Variant Beim Wert True wird eine neue OnTime-Prozedur ausgeführt. Beim Wert False wird eine zuvor festgelegte Prozedur gelöscht. Der Standardwert ist True.
Anmerkungen
Verwenden Sie Now + TimeValue(time) zum Ausführen eines Programms o.ä. nach einer bestimmten Zeit (von jetzt an gezählt). Verwenden Sie TimeValue(time) zum Ausführen eines Programms o.ä. für eine bestimmte Zeit.
Beispiel
In diesem Beispiel wird "my_Procedure" nach 15 Sekunden ausgeführt.
Visual Basic für Applikationen
Application.OnTime Now + TimeValue("00:00:15"), "my_Procedure"
Im folgenden Beispiel wird "my_Procedure" um 17 Uhr ausgeführt.
Visual Basic für Applikationen
Application.OnTime TimeValue("17:00:00"), "my_Procedure"
In diesem Beispiel wird die OnTime-Einstellung aus dem vorherigen Beispiel gelöscht.
Visual Basic für Applikationen
Application.OnTime EarliestTime:=TimeValue("17:00:00"), _
Procedure:="my_Procedure", Schedule:=False
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige