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

Autospeichern dann Datei schliessen

Autospeichern dann Datei schliessen
19.01.2007 18:10:21
Peter schilling
Hallo Excelfreunde
kann mir jemand zeigen wie ich eine Datei nach Zeitvorgabe (ZB 30 Minuten)
abspeichern und dann automatisch schliessen lassen kann.
Da mehrere Personen an einer Datei arbeiten, möchte ich diese Funktion einbauen.
Es kommt immer wieder vor, dass eine Datei bearbeitet wird und vergessen wird diese zu schliessen.
Es kann nur noch Schreibgeschützt geöffnet und unter einem anderen Namen gespeichert werden.
Mann/Frau kann auch sagen, wenn zB 10 Minuten keine Berechnung mehr durchgeführt wurde, dann speichern und schliessen.
Wer kann mir hier weiterhelfen.
Gruß Dieter

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Autospeichern dann Datei schliessen
19.01.2007 18:50:05
IngGi
Hallo Dieter,
versuch' mal folgende Makrolösung:
Dieses Makro kommt in ein allgemeines Modul (einfügen im VBA-Editor über Menü Einfügen-Modul):
Sub schliessen()
ThisWorkbook.Close True
End Sub
Und folgende Makros kommen in das Modul von "DieseArbeitsmappe":
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.OnTime Now + TimeValue("00:10:00"), "schliessen", , False
End Sub
Private Sub Workbook_Open()
Application.OnTime Now + TimeValue("00:10:00"), "schliessen"
End Sub
Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
Application.OnTime Now + TimeValue("00:10:00"), "schliessen", , False
Application.OnTime Now + TimeValue("00:10:00"), "schliessen"
End Sub
Voraussetzung damit es funktioniert ist natürlich, dass die Datei mit aktivierten Makros geöffnet wird (Makrosicherheitseinstellung auf "Mittel").
Gruß Ingolf
Anzeige
AW: Autospeichern dann Datei schliessen
19.01.2007 18:57:38
Josef Ehrensberger
Hallo Peter,
hier eine andere Lösung.
' **********************************************************************
' Modul: DieseArbeitsmappe Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    StopTimer
End Sub

Private Sub Workbook_Open()
    lastChange = Now
    StartTimer
End Sub

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    lastChange = Now
End Sub

' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit
Public RunWhen As Double
Public lastChange As Double

Public Const maxTimeIdle As Long = 30 'Leerlaufzeit in Minuten - anpassen!

Public Const cRunIntervalSeconds = 300 ' Intervall in Sekunden
Public Const cRunWhat = "chek_status"

Sub StartTimer()
    RunWhen = Now + TimeSerial(0, 0, cRunIntervalSeconds)
    Application.OnTime earliesttime:=RunWhen, procedure:=cRunWhat, _
        schedule:=True
End Sub

Sub chek_status()
    
    If lastChange + TimeSerial(0, maxTimeIdle, 0) < Now Then
        
        '###wenn keine Meldung erscheinen soll, dann diesen Block entfernen oder auskommentieren!#######################
        If MsgBox(Space(30) & ThisWorkbook.Name & vbLf & vbLf & vbLf & _
            "Sie haben seit " & CStr(maxTimeIdle) & " Minuten keine eingabe getätigt!" & Space(40) & vbLf & vbLf & _
            "Klicken Sie auf [OK] um die Datei zu speichern und zu schliessen," & vbLf & _
            "oder auf [Abbrechen] um die Datei geöffnet zu lassen!", 49, ThisWorkbook.Name) = 1 Then
            '###############################################################################################################
            
            ThisWorkbook.Close True
            Exit Sub
        Else
            lastChange = Now
        End If
    End If
    
    StartTimer
    
End Sub

Sub StopTimer()
    On Error Resume Next
    Application.OnTime earliesttime:=RunWhen, _
        procedure:=cRunWhat, schedule:=False
End Sub

Gruß Sepp
Anzeige
AW: Autospeichern dann Datei schliessen
19.01.2007 20:19:11
Peter schilling
Hallo Excelfreunde
@ Ingolf:
Ich habe den Code in eine Datei eingefügt, aber es tut sich erst einmal nichts.
Erst wenn ich die Datei schliesse erscheint "Die Methode (On Time) für das Objekt "Application" ist fehlgeschlagen.
Was kann ich hier tun.??
@ Josef:
Auch dir danke ich für deine Hilfe, aber auch hier tut sich nichts.
Beide habe ich erst auf "Mittel" und dann auf "Niedrig" gestellt, aber ohne Ergebnis.
Ich habe mal beide hochgeladen. Vielleicht habe ich ja was übersehen.
Version 1:
https://www.herber.de/bbs/user/39794.xls
Version 2:

Die Datei https://www.herber.de/bbs/user/39795.xls wurde aus Datenschutzgründen gelöscht

Gruß Dieter
Anzeige
AW: Autospeichern dann Datei schliessen
19.01.2007 20:33:23
Josef Ehrensberger
Hallo Dieter,
also bei mir läuft's.
Gruß Sepp
Bei mir kein Ergebnis- warum
19.01.2007 21:38:51
Peter schilling
Hallo Josef
ich habe jetzt x-mal die Datei laufen lssen.
Es erscheint "End If ohne If Block.
Das habe ich dann gelöscht und noch einmal die Datei 3 mal laufen gelassen.
Aber sie bleibt auf (wird also nicht gespeichert und geschlossen.
Kannst du mir erklären warum.
Gruß Dieter
AW: Bei mir kein Ergebnis- warum
19.01.2007 22:32:52
Josef Ehrensberger
Hallo Dieter,
probier mal diese Datei.
Stell die Intervalle kürzer, damit du nicht so lange warten musst.
Die Intervalle sind jetzt in Sekunden anzugeben!
https://www.herber.de/bbs/user/39800.xls
Gruß Sepp
Anzeige
AW: Bei mir kein Ergebnis- warum
19.01.2007 23:07:01
Peter schilling
Hallo Josef
ich denke das heute nicht mein Tag ist.
Nachdem die Meldung kam " Sie haben seit .....keine Eingabe..." getätigt, habe ich diesen Text ausgblendet. (Sie soll sich ja alleine abspeichern und schliessen)
Aber schliessen tut sich sich nicht.
Hier mal meine Datei.
https://www.herber.de/bbs/user/39801.xls
Gruß Dieter
na dann...
19.01.2007 23:23:55
Josef Ehrensberger
Hallo Dieter,
..ist es klar, war aber auch miein Fehler.
Wenn keine meldung erscheinen soll, muss man natürlich den ganzen If-Block entfernen.
Sub chek_status()
    If lastChange + TimeSerial(0, 0, maxTimeIdle) < Now Then
        StopTimer
        ThisWorkbook.Close True
        Exit Sub
    End If
    StartTimer
End Sub

Gruß Sepp
Anzeige
AW: na dann...
19.01.2007 23:59:08
Peter schilling
Hallo Josef
es funktioniert jetzt.
Allerdings nur mit einer leeren Datei.
Ich werde mal in aller Ruhe an meiner originalen Datei probieren.
Danke erst einmal für deine hilfe.
Gruß Dieter
Danke dir Josef
20.01.2007 18:08:46
Peter schilling
Hallo Excelfreund (Josef)
danke die für die Hilfe bei der Datei.
Es klappt alles wunderbar.
Gruß Dieter

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige