Anzeige
Archiv - Navigation
404to408
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
404to408
404to408
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Makro fortsetzten trotz Application.Quit?!

Makro fortsetzten trotz Application.Quit?!
Andre
Guten Morgen,
ich benötige eine Möglichkeit, die ein Makro fortsetzt, obwohl ich zwischenzeitlich "Application.Quit" ausführen lasse.
Die Sache ist etwas knifflig, denn auch wenn ich es hinbekommen sollte (?!) eine VBA-Prozedur extern laufen zu lassen, müßte diese einen Wert (=einen Pfad und Dateinamen) aus einer Access-Datenbank auslesen können.
Löse ich dieses Problem mit Hilfe einer VB-Scipt-Datei, die ich über (Shell...) aufrufe, scheint der Zugriff auf die Access-DB noch schwieriger zu sein!
Versuche ich vor der Zeile "Application.Quit" ein VBA-Makro in einer anderen Excel-Arbeitsmappe anzusprechen ("AndereMappe.Run ("MeinMakro")), wartet das ursprüngliche Makro natürlich auf Beendigung des zweiten. Also bietet mir das auch keine Lösung, solange VBA immer wartet und nicht zwei Makros laufen läßt
(Kann man wahrscheinlich auch nicht umgehen oder?)!
Sinn und Zweck der ganzen Aktion soll nachher sein, dass ich in der Lage bin per VBA die aktuelle Arbeitsmappe zu schließen, sie zu löschen, eine andere Mappe (Name und Pfad aus Access-DB!) in den aktuellen Ordner der vorherigen Mappe zu kopieren und diese dann wiederrum zu öffnen! Eine Art "Update-Organisation der Datei"! Keine Angst, ich verlange hier keine Komplettlösung, mir geht´s lediglich darum, die Tatsache zu umgehen, dass mit "Application.Quit" Ende mit Makroausführung sein muss!
Bin für jede Idee offen.
Gruß Andre
AW: Makro fortsetzten trotz Application.Quit?!
Alex
Hallo Andre,
warum schliesst du mit "Application.Quit" gleich die ganze Excel-Anwendung. Es genügt doch, wenn du mit "Workbook.Close" die betroffene Arbeitsmappe schliesst. Und damit mit dem Schliessen der Arbeitsmappe nicht auch das Makro beendet wird, erstellst du eine Arbeitsmappe als Kontrolldatei. Diese Mappe beinhalt die Makros und führt diese auch aus. Somit kannst du die eigentliche Arbeitsmappe schliessen, löschen und eine neue Arbeitsmappe anlegen / kopieren und öffnen.
Danke für deine Hilfe. o.T.
Andre
AW: Makro fortsetzten trotz Application.Quit?!
Russi
Hallo Andre!
Zu Application.quit fällt mir ehrlich gesagt nichts ein. Aber wie wäre es damit:
Kopiere ein Makro in eine neue (temporäre) Arbeitsmappe und führe dieses Makro aus. Damit erhälst Du Zugriff auf Deine Datei.
Hier ist mal ein Beispiel, welches ich zum Löschen einer geöffneten Datei benutzt habe:
' Temp-Datei generieren und Indexwert zuweisen
Workbooks.Add
For IntMappe = 1 To Application.Workbooks.Count
If Workbooks(IntMappe).Name = Activeworkbook.Name Then Exit For
Next
' Makrozeilen für auszublendende Temp-Datei definieren:
StrMakroText = _
"Public

Sub TempMakro()" & Chr(10) & _
"    Workbooks(""" & StrAddinsKurz & """).Close False" & Chr(10) & _
"    Kill " & """" & StrAddins & """" & Chr(10) & _
"    Thisworkbook.Close False" & Chr(10) & _
"End Sub
"
'Makrozeilen in ausgeblendete Temp-Datei einfügen:
With Workbooks(IntMappe)
.Windows(1).Visible = False
.VBProject.VBComponents.Add (1)
With .VBProject
With .VBComponents(.VBComponents.Count).CodeModule
.AddFromString StrMakroText
End With
End With
End With
'String für Aufruf bestimmen
Dim TempMakroAufruf As String
TempMakroAufruf = "" & Workbooks(IntMappe).Name & "!'Tempmakro'" & ""
Application.OnTime Now + TimeValue("00:00:02"), TempMakroAufruf
Anzeige
AW: Makro fortsetzten trotz Application.Quit?!
Andre
Danke, eine fantastische Idee!
Gruß Andre
AW: Makro fortsetzten trotz Application.Quit?!
Russi
Habe ich gehofft. Danke!
Russi
Eine Problem hätte ich noch!
Andre
Deine Lösung funktioniert, aber ich habe sie erweitert um die Befehlszeile
"Workbooks.Open Filename:= " & """" & StrUpdate & """" & Chr(10) & _",
die neue Datei wird auch geöffnet, aber leider wird ihr Auto_Open-Ereignis nicht angesprochen!
Wie bekomme ich das hin? Dann bin ich auch nicht mehr lästig, versprochen!?
Gruß Andre
Sorry, keine Ahnung...
Russi
Hi Andre!
Leider kenne ich das Auto_Open Ereignis noch gar nicht, aber versuche, den Befehl durch eine weitere Zeile zu ergänzen:
ActiveWorkbook.RunAutoMacros xlAutoOpen
Sollte funzen (siehe https://www.herber.de/forum/archiv/80to84/t80010.htm)
Viele Grüße
Russi
Anzeige
Danke, hat funktioniert. o.T.
Andre
ähhh...falscher Betreff!
Russi
Hab mir ja Ahnung verschafft.
Aber hast Du sicherlich gelesen...;-)
Kein Thema, danke für deine Hilfe. o.T.
Andre
AW: Makro fortsetzten trotz Application.Quit?!
Hans
Hallo Andre,
das Ganze ist ja nur dann ein Problem, wenn sich der Code in der zu schließenden und zu killenden Arbeitsmappe befindet. Es erledigt sich, wenn Du die Steuerung an eine andere Arbeitsmappe übergibst.
Gruss hans
Danke für deine Hilfe ...
Andre
... Russi hatte die perfekte Idee.
Gruß Andre

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige