Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1572to1576
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

VBA mit Arbeitsmappe schließen

VBA mit Arbeitsmappe schließen
16.08.2017 16:43:14
ralph
Hallo zusammen,
ich habe eine Mappe, die Makros beinhaltet. Diese schließe ich mittels eines Makros und möchte, dass die Makros dann auch geschlossen werden, obwohl ich Excel an für sich geöffnet habe, da ich mehrere Dokumente in Excel offen habe. Eines der Makros bringt mir nach 10 Minuten den Hinweiß, dass die Mappe geschlossen wird, diese ist jedoch bereits geschlossen.
Wie bekomme ich die Makros die zu dieser Arbeitsmappe gehören ausgeschaltet oder aus Excel raus?
Danke sehr und Grüße
Ralph

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA mit Arbeitsmappe schließen
16.08.2017 16:49:35
Nepumuk
Hallo Ralph,
du hast in deinen Makros die OnTime-Methode verwendet. Diese musst du explizit beenden ansonsten passiert das was bei dir abläuft. Da ich deine Makros nicht kenne, kann ich dir nicht weiter helfen.
Gruß
Nepumuk
AW: VBA mit Arbeitsmappe schließen
17.08.2017 09:48:32
ralph
Hallo Nepumuk,
das Makro schließt die Arbeitsmappe, sofern diese 10 Minuten lang nicht bearbeitet wurde.
Private Sub Workbook_Open()
dteCloseTime = Now + TimeSerial(0, 9, 0)
Application.OnTime dteCloseTime, "DoClose"
MsgBox "Die Arbeitsmappe wird nach 10 Minuten inaktivität automatisch und ohne Vorwarnung  _
geschlossen!"
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Application.OnTime dteCloseTime, "DoClose", , False
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
On Error Resume Next
Application.OnTime dteCloseTime, "DoClose", , False
dteCloseTime = Now + TimeSerial(0, 9, 0)
blnCloseNow = False
Application.OnTime dteCloseTime, "DoClose"
End Sub
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
On Error Resume Next
Application.OnTime dteCloseTime, "DoClose", , False
dteCloseTime = Now + TimeSerial(0, 9, 0)
blnCloseNow = False
Application.OnTime dteCloseTime, "DoClose"
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
On Error Resume Next
Application.OnTime dteCloseTime, "DoClose", , False
dteCloseTime = Now + TimeSerial(0, 9, 0)
blnCloseNow = False
Application.OnTime dteCloseTime, "DoClose"
End Sub
Stehen in dieser Arbeitsmappe
Option Explicit
Public dteCloseTime As Date, blnCloseNow As Boolean
Public Sub DoClose()
Dim strMsg As String
If blnCloseNow = False Then
strMsg = "Diese Datei wurde seit 9 Minuten nicht bearbeitet und" & vbCrLf & _
"wird bei weiterer Inaktivität in 1 Minute geschlossen."
'CreateObject("WScript.Shell").PopUp strMsg, 10, ThisWorkbook.Name, _
vbOKOnly + vbInformation '+ vbSystemModal
blnCloseNow = False 'false durch True
dteCloseTime = Now + TimeSerial(0, 1, 0)
Application.OnTime dteCloseTime, "DoClose"
Else
If Workbooks.Count = 1 Then
Application.DisplayAlerts = False
Application.Quit
Else
ThisWorkbook.Close False
End If
End If
End Sub
steht in einem Modul
wird die Mappe geschlossen, kommt dennoch ständig die Benachrichtigung, dass diese geschlossen werden soll, weil sie nicht bearbeitet wird. Aber sie ist ja bereits geschlossen. und Excel kann ich nicht komplett schließen, weil ja ggf. noch eine Vielzahl anderer Dokumente zur selben Zeit geöffnet ist.
Vielen Dank für deine Hilfe und Grüße
Ralph
Anzeige
AW: VBA mit Arbeitsmappe schließen
18.08.2017 18:10:11
Piet
Hallo Ralph
ich wage mal einen Testvorschlag zu machen, kenne ja auch nicht den genauen Makro Aufbau.
Eine Möglichkeit ist in der Mappe die Schliessen will vor der Schliessroutine durch eine For Next Schleife zu prüfen ob diese Mappe noch geöffnet ist? Wenn Nein Schliessbefehl überspringen!! Anbei ein Makro zum prüfen, das man an der richtigen Stelle einbauen muss.
mfg Piet

Sub Datei_Offen_Test()
Datei = "xxxxx"   'Name der zu prüfenden Datei
'Schleife zum Prüfen ob diese Datei noch offen ist
For j = 1 To Workbooks.Count
If Workbooks(j).Name = Datei Then Datei = "Ja": Exit For
Next j
'Abbruch wenn Datei geschlossen!!
If Datei  "Ja" Then Exit Sub
End Sub

Anzeige
AW: VBA mit Arbeitsmappe schließen
19.08.2017 19:44:32
Nepumuk
Hallo Ralph,
an dem bisher gezeigten Code kann das nicht liegen, das habe ich eingehen überprüft. Daher vermute ich es liegt am Code des Buttons mit dem du die Mappe schließt. Kannst du den mal zeigen?
Gruß
Nepumuk

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige