Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
556to560
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
556to560
556to560
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Autoclose & Application.OnTime?

Auto_close & Application.OnTime?
29.01.2005 00:44:40
Michael G.
Hallo zusammen,
ich versuche eine zeitgesteuerte Prozedur beim Schließen einer Excel-Datei automatisch zu beenden. Es gibt dabei allerdings den Laufzeitfehler 1004. Weiß jemand einen Rat?


Public Sub Zeitsteuerung_ein()
Application.OnTime TimeValue("12:00:00"), "Mittagspause"
End Sub


Public Sub Zeitsteuerung_aus()
Application.OnTime TimeValue("12:00:00"), "Mittagspause", , False
End Sub


Public Sub Mittagspause()
MsgBox "Der Gesundheitsminister empfiehlt Ihnen eine Mittagspause"
End Sub


Sub Auto_close()
Zeitsteuerung_aus
End Sub


Danke & Ciao,
Michael G.

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Auto_close & Application.OnTime?
29.01.2005 00:54:25
chris b
Ich glaube den fehler zu wissen.
Der Laufzeitfehler beim beenden kommt nur dann wenn du oder wenn die Zeitsteuerung nicht läuft.
Dann verscuht Excel das Makro Public Sub Zeitsteuerung_aus zu starten und dann kommt dieser fehler.
Also wenn du möchtest das der fehler nicht kommt würde ich noch ein sub auto_open einbauen also das die Zeitsteuerung automatisch gestartet wird wenn die datei gestartet wird und dann kommt der fehler nicht mehr.
Grüße Chris
Klappts ?
AW: Auto_close & Application.OnTime?
29.01.2005 00:56:27
Stephan
Chris hat Recht.
Du kannst das ganze auch mit einem einfachen
On Error Resume Next
umgehen ;)
Gruß
Stephan
Anzeige
@ Stephan & Chrisb
29.01.2005 01:31:42
Michael G.
Hallo zusammen,
Danke für Eure Antworten. Beim vorherigen Listing haben sie geholfen. Beim nachfolgenden startet nun allerdings die Excel-Datei wenige Sekunden nach dem Schließen erneut. Wißt Ihr noch einen Rat?
Danke & Ciao,
Michael G.

Sub Auto_open()
Worksheets("Tabelle1").Activate
For I = 2 To 65536
If IsEmpty(Cells(I, 1)) Then
ZeitAnfang = Cells(I - 1, 3).Value
ZeileAktuellNeu = I - 1
Exit For
End If
Next I
ZeileAktuellAlt = ZeileAktuellNeu
ZeitAufrufSub = Now + TimeSerial(0, 0, 5)
Call Hinweis1
End Sub
Sub Auto_close()
On Error Resume Next
Application.OnTime EarliestTime:=ZeitAufrufSub, _
Procedure:="Hinweis", Schedule:=False
End Sub
Sub Hinweis1()
Worksheets("Tabelle1").Activate
For I = 2 To 65536
If IsEmpty(Cells(I, 1)) Then
ZeitAnfang = Cells(I - 1, 3).Value
ZeileAktuellNeu = I - 1
Exit For
End If
Next I
If ZeileAktuellNeu = ZeileAktuellAlt Then
If Now > "28.01.2005" + ZeitAnfang + TimeSerial(0, 0, 20) Then
UserForm1.Show
End If
End If
ZeitAufrufSub = Now + TimeSerial(0, 0, 5)
Application.OnTime ZeitAufrufSub, "Hinweis1"
End Sub

Anzeige
AW: @ Stephan & Chrisb
29.01.2005 01:36:18
chris b
Sorry aber ich verstehe die frage nicht:(
AW: @ Stephan & Chrisb
29.01.2005 01:50:03
Michael G.
Irgendwie kommt Excel aus der Zeitsteuerung nicht raus, d.h. die Datei startet immer wieder neu.
Grüße & Ciao,
Michael
Falsche Variable
29.01.2005 09:05:41
Ramses
Hallo
Das kann auch nicht gehen, weil die Variable "ZeitaufrufSub" nur innerhalb der jeweiligen Prozedur gültig ist und nicht im gesamten Modul
Du musst die Variable als Public deklarieren, dann funktioniert es.
By the way:
Bei VBA-Gut solltest du dich an die Nomenklatur halten, und diese Makros auch entsprechend korrekt bezeichnen bzw. platzieren.
Auto_Open gehört in Workbook_Open
Auto_Close gehört in Workbook_BeforeClose
Gruss Rainer
Anzeige
AW: Falsche Variable
29.01.2005 16:11:04
Michael G.
Hi Ramses,
Danke für die Info & sorry für das "Crossposting" in spotlight.de (endlich weiß ich, was das Wort bedeutet).
Die Variable "ZeitAufrufSub" hatte ich als Public deklariert. Es war auch nicht das Problem. Es lag vielmahr daran, dass beim Schließen der Datei alle zuvor getätigten Aufrufe mit Application.OnTime entweder ausgeführt oder mit Application.OnTime ... Schedule:=False UND identischen Zeitangaben (!) beendet sein müssen. Die Kunst dabei ist, erstens alle diese Aufrufe ausfindig zu machen und zweitens, zu verhindern, dass Excel versucht, eine Prozedur in der Zeitschleife zu beenden, obwohl diese schon abgearbeitet wurde. Dann gibt es den Laufzeitfehler 1004. Ich schaue mal, ob ich den Artikel dazu gerade noch wiederfinde.
Was "VBA-Gut" angeht nehme ich alles zurück & behaupte das Gegenteil ;-). Deshalb auch gleich die Frage wie ich Deinen Hinweis bezüglich
Auto_Open gehört in Workbook_Open
Auto_Close gehört in Workbook_BeforeClose
verstehen soll?
Danke & Grüße & Ciao,
Michael G.
Anzeige
AW: Falsche Variable
29.01.2005 18:42:33
chris b
Hallo Ramses, ich habe dieses Problem verfolgt und auch bei seiner ersten frage eine Antwort geben können, aber beim zweiten teil habe ich auch schon geschrieben das ich das nicht verstehe.Also ich weiß auch nicht was das Makro macht.So gut bin ich noch nicht. Würdest du oder jemand mir evtl. kurz erklären was gemeint ist und so ?
Vielen Dank schon einmal grüße Christian
Anzeige
AW: Falsche Variable
29.01.2005 19:24:15
andre
Hallo Chris,
was verstehst Du denn nicht? Geht es um Auto_OPen und Workbook_Open? Auto_Open ist eine Variante, die wohl noch aus Kompatibilitätsgründen mitgeführt wird, und in einem "normalen" Modul platziert werden kann. Schon in Excel97 gab es Workbook_Open in DieseArbeitsmappe. ..Close dito.
Grüße, andre
AW: Falsche Variable
29.01.2005 21:17:41
chris b
Ja das versteh ich schon(auto_open und close) kenne ich auch , aber das gesamte problem verstehe ich nicht.
Aber egal vielen Dank !

54 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige