Thema Datum  Von Nutzer Rating
Antwort
Rot Automatisches Beenden einer Excel-Datei
03.09.2006 20:23:38 wuerth
NotSolved
04.09.2006 13:22:57 Schnolli
NotSolved
04.09.2006 15:38:27 wuerth
NotSolved
05.09.2006 10:00:20 Schnolli
NotSolved
05.09.2006 18:41:51 wuerth
NotSolved
06.09.2006 09:47:33 Schnolli
NotSolved
06.09.2006 21:20:46 wuerth
NotSolved
10.09.2006 14:54:05 wuerth
NotSolved
05.09.2006 10:04:41 Schnolli
NotSolved
10.09.2006 13:07:28 wuerth
NotSolved
24.08.2015 10:41:18 klamafel
NotSolved

Ansicht des Beitrags:
Von:
wuerth
Datum:
03.09.2006 20:23:38
Views:
3407
Rating: Antwort:
  Ja
Thema:
Automatisches Beenden einer Excel-Datei
Hallo zusammen,

als Neuling in der Welt von "Visual Basic for Applications"
traue ich mir noch nicht allzuviel selber zu.
Problemstellung ist folgende:
Eine Datei soll automatisch nach einer gewissen Zeit Inaktivität geschlossen werden. Dazu habe ich in einer PC-Zeitschrift folgenden Code gefunden:

Arbeitsblatt:
-------------------------------------------------------------
Private Sub Workbook_Open()
ErsteMessung
Zeit = TimeSerial(0, 0, 10)
Application.OnTime Now + Zeit, "Position", False
End Sub
-------------------------------------------------------------
Modul:

Public Prüf As Boolean
Public Leave As Boolean
Public Zeit As Date
Public AddTime As Date
Public Posx1 As String
Public Posy1 As String
Public Posx2 As String
Public Posy2 As String
Public Koord As POINTAPI
Public Klass As Long


Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Type POINTAPI
x As Long
y As Long
End Type

Sub ErsteMessung()
Klass = GetCursorPos(Koord)
Posx1 = Koord.x
Posy1 = Koord.y
End Sub

Sub Position()
Klass = GetCursorPos(Koord)
Posx2 = Koord.x
Posy2 = Koord.y

If Posx2 = Posx1 And Posy2 = Posy1 Then
Posx1 = Posx2
Posy1 = Posy2
Fenster
Else
Posx1 = Posx2
Posy1 = Posy2
Zeit = Time + AddTime
Application.OnTime Zeit, "Position"
End If
End Sub

Sub Beenden()
If Prüf = False Then Exit Sub
Unload frmCountdown
If ActiveWorkbook.Saved = False Then ActiveWorkbook.Save
Application.quit
End Sub

Sub Fenster()
If Leave = True Then Exit Sub
Prüf = True
Zähler = 10
frmCountdown.lblCountdown.Caption = Zähler
Application.OnTime Zeit + TimeSerial(0, 0, 10), "Beenden"
Countdown
frmCountdown.Show
End Sub

Sub Countdown()
If Leave = True Then Exit Sub
If Prüf = False Then Exit Sub
frmCountdown.lblCountdown.Caption = Zähler
If Zähler = 1 Then Exit Sub
Application.OnTime Now + TimeSerial(0, 0, 1), "Countdown"
Zähler = Zähler - 1
End Sub

Sub Abbrechen()
If Leave = True Then Exit Sub
Prüf = False
Unload frmCountdown
Application.OnTime Now + AddTime, "Position", False
End Sub
-------------------------------------------------------------
Die UserForm müsst Ihr euch leider denken :O)


So - jedenfalls wird mit dem Makro bei einer Inaktivität (d.h. keine Bewegung der Maus) nach Zwei Minuten (hier testhalber nach 10 Sekunden) die komplette Applikation - also Excel beendet.
Das funktioniert soweit eigentlich auch ganz gut.
Problem ist, dass alle anderen offenen Excel-Fenster auch mit beendet werden! Das will ich allerdings nicht!
Deswegen hab ich den Befehl:

Application.quit durch aktiveworkbook.close

ersetzt. Wir jetzt allerdings das File händisch geschlossen (KLICK rechts oben auf X ), so startet es auch nach der angegebenen Zeit (z.B. 2 Minuten) wieder und verweilt beim Bestätigungsfenster Makros aktivieren/deaktiviren. Verursacht wird dies meiner Meinung nach durch den Befehl
Application.OnTime Now + Zeit, "Position", False

Will man nun von einem anderen Rechner auf diese Datei zugreifen, so ist sie schreibgeschützt und der ganze Aufwand des automatischen Schließens per Makro war umsonst!!!

Kann mir jemand von Euch weiterhelfen?
Vielleicht gibt es ja auch einen anderen Befehl, der nur das entsprechende Fenster beendet, so dass man nach einer Inaktivität von bspw. 2 Minuten von einem anderen Rechner auf die Datei zugreifen kann.
Bin über jeden Tip und jede Hilfe dankbar!

VIELEN DANK IM VORAUS!

Greetz

WUERTH

PS: Habe auch schon versucht den "laufenden" Prozess zu killen... aber des funzt irgendwie auch nicht...

Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:

 
 

  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Automatisches Beenden einer Excel-Datei
03.09.2006 20:23:38 wuerth
NotSolved
04.09.2006 13:22:57 Schnolli
NotSolved
04.09.2006 15:38:27 wuerth
NotSolved
05.09.2006 10:00:20 Schnolli
NotSolved
05.09.2006 18:41:51 wuerth
NotSolved
06.09.2006 09:47:33 Schnolli
NotSolved
06.09.2006 21:20:46 wuerth
NotSolved
10.09.2006 14:54:05 wuerth
NotSolved
05.09.2006 10:04:41 Schnolli
NotSolved
10.09.2006 13:07:28 wuerth
NotSolved
24.08.2015 10:41:18 klamafel
NotSolved