Anzeige
Archiv - Navigation
1608to1612
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
schließen und gleich wieder öffnen
12.02.2018 12:04:23
Markus
Hallo liebe Community,
ich suche nach einer Lösung eine Datei zu schließen (was schon funktioniert) und dann aber wieder nach dem schließen gleich erneut zu öffnen nach einer bestimmten Zeitspanne, dabei möchte ich aber keinen festen Pfad angeben extra für die zu öffnende Datei, sondern er soll erkennen welche Datei geschlossen wurde und diese auch gleich wieder öffnen, da sich dieser Pfad immer wieder ändert. Also er soll die Datei öffnen die er geschlossen hat und erkennen um welche es sich handelte.
Ich stellte mir das so vor: Per Doppelklick wird die Datei geöffnet, dann auf Buttondruck wird sie geschlossen und danach gleich nach 2 Sekunden aber wieder geöffnet, (die selbe Datei), dabei sollen aber keine Änderungen gespeichert werden und es soll auch nicht nachgefragt werden ob gespeichert werden soll.
So weit bin ich bereits:

Sub Start()
pfad = ActiveWorkbook.Path
Application.OnTime Now + TimeValue("00:00:02"), Application.Workbooks.Open(pfad)
MsgBox "Die Arbeitsmappe wurde wieder erfolgreich geöffnet"
End Sub

Sub schließen()
'ActiveWorkbook.Close
'ActiveWorkbook.Close savechanges:=False
ActiveWorkbook.Close (False)
'ThisWorkbook.Close True
End Sub
Sub Öffnen()
ThisWorkbook.Activate
'Application.OnTime Now + TimeValue("00:00:10"),ThisWorkbook.Name & "!Start"
Call Start
End Sub

Das schließen funktioniert immer, aber er öffnet es nicht wieder nach den 2 Sekunden, was mache  _
ich da falsch?
Hoffe jemand kann mir da weiterhelfen
Beste Grüße
Markus


		

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: schließen und gleich wieder öffnen
12.02.2018 12:11:16
mumpel
Hallo!
Du kannst den Dateinamen der aktiven Datei mit ActiveWorkbook.Fullname in einer Variablen speichern und damit die Datei wieder öffnen.
Gruß, René
Nachtrag
12.02.2018 12:15:40
mumpel
"ActiveWorkbook.Path" reicht natürlich nicht. Das ist ja nur das Verzeichnis ohne Dateinamen. Da sollte eigentlich eine Fehlermeldung kommen.
AW: Nachtrag
12.02.2018 14:10:49
Markus
Hallo Mumpel,
danke erstmal für Deine Antwort. Ich habe es versucht und das mit dem FullName ersetzt mir meine Pfadvariable sogar, soweit habe ich es verstanden und der Pfad mit der richtigen Datei wird mir auch ausgegeben (MsgBox-Prüfung). Jedoch öffnet er nach wie vor die Datei nicht wieder, obwohl ich ihm doch sage er soll die Prozedur Start Ausführen und dann per Zeitspanne von 2 Sekunden die Datei wieder öffnen, die Variable habe ich doch in dieser Zeile Application.OnTime Now + TimeValue("00:00:02"), Application.Workbooks.Open(Dateivariable) per Aufruf mit drinstehen (Dateivariable), aber trotzdem öffnet er die Datei nicht wieder. :(
Folgendermaßen sieht jetzt mein Code aus:

Sub Start()
Dateivariable = ActiveWorkbook.FullName
MsgBox ActiveWorkbook.FullName
'pfad = ActiveWorkbook.Path & "\" & Dateivariable
'MsgBox pfad
Application.OnTime Now + TimeValue("00:00:02"), Application.Workbooks.Open(Dateivariable)
MsgBox "Die Arbeitsmappe wurde wieder erfolgreich geöffnet"
End Sub


Sub Öffnen()
ThisWorkbook.Activate
'Application.OnTime Now + TimeValue("00:00:10"),ThisWorkbook.Name & "!Start")
Call Start
End Sub


Sub schließen()
'ActiveWorkbook.Close
'ActiveWorkbook.Close savechanges:=False
ActiveWorkbook.Close (False)
'ThisWorkbook.Close True
MsgBox "Test passiert hier noch was?"
Call Öffnen
End Sub

Was mache ich da noch falsch? Soweit ich das verstehe führt er die Prozedur öffnen gar nicht aus nach dem ActiveWorkbook.Close (False) und somit auch nicht die Startprozedur, aber wie ändere ich das bzw. sage ihm er soll die Prozedur Öffnen nach dem Schließen weiterverarbeiten? (die ja dann erst die Startprozedur aufruft)
Übringens kam bei mir keine Fehlermeldung, oban ich nur den Pfad angegeben hatte ohne Dateiname, das nur der Vollständigkeit halber, aber das funktioniert ja jetzt mit der FullName Sache, aber wieder öffnen der Datei, leider Fehlanzeige.
Beste Grüße
Markus
Anzeige
AW: Nachtrag
12.02.2018 17:36:52
Mullit
Hallo,
da reicht eigentlich zunächst sowas:
Option Explicit
Public Sub prcCloseFile()
Call Application.OnTime(EarliestTime:=Now + TimeSerial(0, 0, 2), _
Procedure:="prcDummy")
Call ThisWorkbook.Close(SaveChanges:=False)
End Sub
Private Sub prcDummy()
Call ThisWorkbook.Activate
End Sub

Gruß, Mullit
AW: Nachtrag
13.02.2018 16:44:43
Markus
Danke Mullit hat bei mir gut funktioniert :)
Nun wollte ich jedoch mal das eine und mal das andere Workbook schließen lassen und dann wieder öffnen, nur bisher bekomme ich das nicht hin, immer wird wieder das selbe Workbook geschlossen und geöffnet.
Folgenden Code habe ich mir bisher aus Deinem abgeleitet:

Public Sub prcCloseFile2()
Call Application.OnTime(EarliestTime:=Now + TimeSerial(0, 0, 10), _
Procedure:="prcDummy2")
Call ThisWorkbook.Close(SaveChanges:=True)
End Sub


Public Sub prcCloseFile()
Call Application.OnTime(EarliestTime:=Now + TimeSerial(0, 0, 2), _
Procedure:="prcDummy")
MsgBox "Davor"
Call prcCloseFile2
MsgBox "Danach"
Call ThisWorkbook.Close(SaveChanges:=False)
End Sub


Private Sub prcDummy()
Call Workbooks(3).Activate
End Sub


Private Sub prcDummy2()
Call Workbooks(2).Activate
End Sub

Er sollte das aktive Workbook wechseln und mal im dritten stehen und mal im zweiten stehen und dann wenn er im zweiten steht das dritte öffnen und schließen, halt so in dem Maße, aber er macht es wie gesagt immer nur für das Erste Workbook. Warum frage ich mich?
Ich wollte gern dieses prcCloseFile2 aufrufen doch er nimmt es nicht an und selbst wenn ich es einzeln mache öffnet und schließt er immer nur das erste Workbook. Beim ersten mal ist das auch richtig, aber dann sollte er das zweite schließen und wieder aufmachen und dann das dritte und stets sollte ein anderes Workbook aktiv sein.
Auch frage ich mich was bedeutet eigentlich dieses Call ThisWorkbook.Activate, ich hatte das mal weggelassen und es funktionierte trotzdem, das fand ich seltsam, aber halt auch nur wieder für das Erste Workbook. Also wozu braucht er das überhaupt?
Hoffe kannst mir da weiterhelfen bzw. jemand der es liest.
Beste Grüße
Markus
Anzeige
AW: Nachtrag
13.02.2018 16:45:48
Markus
Danke Mullit hat bei mir gut funktioniert :)
Nun wollte ich jedoch mal das eine und mal das andere Workbook schließen lassen und dann wieder öffnen, nur bisher bekomme ich das nicht hin, immer wird wieder das selbe Workbook geschlossen und geöffnet.
Folgenden Code habe ich mir bisher aus Deinem abgeleitet:

Public Sub prcCloseFile2()
Call Application.OnTime(EarliestTime:=Now + TimeSerial(0, 0, 10), _
Procedure:="prcDummy2")
Call ThisWorkbook.Close(SaveChanges:=True)
End Sub


Public Sub prcCloseFile()
Call Application.OnTime(EarliestTime:=Now + TimeSerial(0, 0, 2), _
Procedure:="prcDummy")
MsgBox "Davor"
Call prcCloseFile2
MsgBox "Danach"
Call ThisWorkbook.Close(SaveChanges:=False)
End Sub


Private Sub prcDummy()
Call Workbooks(3).Activate
End Sub


Private Sub prcDummy2()
Call Workbooks(2).Activate
End Sub

Er sollte das aktive Workbook wechseln und mal im dritten stehen und mal im zweiten stehen und dann wenn er im zweiten steht das dritte öffnen und schließen, halt so in dem Maße, aber er macht es wie gesagt immer nur für das Erste Workbook. Warum frage ich mich?
Ich wollte gern dieses prcCloseFile2 aufrufen doch er nimmt es nicht an und selbst wenn ich es einzeln mache öffnet und schließt er immer nur das erste Workbook. Beim ersten mal ist das auch richtig, aber dann sollte er das zweite schließen und wieder aufmachen und dann das dritte und stets sollte ein anderes Workbook aktiv sein.
Auch frage ich mich was bedeutet eigentlich dieses Call ThisWorkbook.Activate, ich hatte das mal weggelassen und es funktionierte trotzdem, das fand ich seltsam, aber halt auch nur wieder für das Erste Workbook. Also wozu braucht er das überhaupt?
Hoffe kannst mir da weiterhelfen bzw. jemand der es liest.
Beste Grüße
Markus
Anzeige
AW: Nachtrag
14.02.2018 10:03:45
mumpel
Wo stehen denn die Makros? Du solltest sie in ein Add-In packen. Steuern kannst Du das ja über Schaltflächen im Menüband.
AW: Nachtrag
15.02.2018 14:00:07
Markus
Hallo Mullit, danke für Deine Rückantwort. :)
Nun die Makros stehen alle in einem separaten Modul [Modul(2)], welches über einen CommandButton1_Click (In Excel Objekten unter Tabelle1 eingetragen)aufgerufen werden. Der Aufruf findest über prcCloseFile in diesem CommandButton1_Click statt, der sich in Wokrbook1 befindet. Dieser sollte halt dann die Prozedure prcCloseFile2 aufrufen, was und dann halt ein anderes Workbook für sich schließen und wieder öffnen.
Habe weiter probiert, aber es geht immer nur für das eine Workbook, nicht aber wenn ich ein anderes Workbook aktiv schalte und dann Beispielsweise den schließen/öffnen Mechanismus auf Workbook 2 anwenden möchte.
Um dies zu verdeutlichen hier nochmals etwas genauer:
Workbook1 schließen und zeitnahes öffen - funktioniert Focus der aktiven Mappe verändern und auf Workbook3 setzen - funktioniert jetzt soll aber Workbook2 geschlossen werden und zeitnah (andere Zeit) wieder geöffnet - geht nicht, macht das wieder nur für Wookbook1, leider
Dann sollte halt der Focus sich ändern und das Workbook2 aktiv gesetzt werden
Und dann sollte halt das Workbook3 geschlossen und zeitnah wieder geöffnet werden.
Aber wie gesagt das Problem ist, das ich es nur für ein Workbook hinbekomme mit dem schließen und gleichzeitigen wieder öffnen, nicht aber für mehrere.
Mit dem " Add-In packen. Steuern kannst Du das ja über Schaltflächen im Menüband" war nicht so angedacht, wüsste auch nicht wie ich das machen sollte, wäre zwar interessant zu wissen, aber ich wollte es so wie es bei dem einen Workbook bereits geht mit dem schließen und das selbe Workbook wieder öffnen, genauso für die anderen zwei Workbooks haben.
Hoffe kannst mir da helfen, irgendwie drehe ich mich immer wieder im Kreis, ohne das es bei wenigstens einem von den anderen Workbooks klappt. :(
Beste Grüße
Markus
Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige