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

Warum wird die Datei 2mal geöffnet?

Warum wird die Datei 2mal geöffnet?
27.01.2020 21:10:21
Timm
Guten Abend,
es gibt eine Excel-Datei "Mappe1.xlsx", welche von einer externen Software aus einer Vorlage erstellt wird. Dadurch ist leider das Format auf "xlsx" festgelegt. Diese Datei soll durch ein Makro bearbeitet werden. Die Idee war nun, einen Hyperlink in der Datei anzulegen und dadurch eine Datei mit Makro aufzurufen. Die Datei mit Makro heißt "Mappe2.xlsm". Soweit klappt es auch, die Datei "Mappe1" wird bearbeitet und gespeichert. Aber "Mappe2" wird bei aktiveren durch den Hyperlink immer 2 mal ausgeführt. Im VBA-Editor bleibt dann auch das Projekt von "Mappe2" geladen, obwohl das Fenster bereits geschlossen ist.
Wenn man "Mappe2" manuell startet, dann passiert das nicht.
Der Code für "Mappe2":
Private Sub Workbook_Open()
Call MachWas
End Sub
und im Modul1 von "Mappe2":
Sub MachWas()
Application.EnableEvents = False
Dim wbTMP As Workbook
For Each wbTMP In Workbooks
If wbTMP.Name = "Mappe1.xlsx" Then
Set wbTMP = Workbooks("Mappe1.xlsx")
BoOffen = True
Exit For
End If
Next
If BoOffen = False Then
MsgBox "Bitte erst Mappe1 öffnen!"
End
End If
MsgBox "Hallo!"
'Hier wird Mappe1 bearbeitet und gespeichert
ThisWorkbook.Close
Application.EnableEvents = True
End
End Sub
Ich bin für jede Anregung dankbar.
VG

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Warum wird die Datei 2mal geöffnet?
27.01.2020 21:34:29
Timm
Ergänzung:
In beiden Varianten (Mappe2 über Hyperlink oder manuell) bleibt das VBA-Projekt als "Zombi" übrig, wenn Mappe2 schon wieder geschlossen wurde. Erst nach dem kompletten schließen von Excel ist es wieder weg. Beim nochmaligen Öffnen von Mappe2 (was bei der Hyperlink-Variante automatisch passiert) ist dann das Projekt sogar zweimal geöffnet. Es ist auch aufgefallen, dass beim zweiten Öffnen der Code nicht mehr ausgeführt wird.
Userbild
AW: Warum wird die Datei 2mal geöffnet?
01.02.2020 10:10:46
Oberschlumpf
Hi Timm,
änder mal diese Zeilen

ThisWorkbook.Close
Application.EnableEvents = True

um in

Application.EnableEvents = True
ThisWorkbook.Close

deine 1. Variante schließt die Datei mit Code - bevor - die Zeile Application.EnableEvents = True ausgeführt werden kann.
Wenn du erst Application.EnableEvents = True ausführst und dann die Datei schließt, kommt es vielleicht nicht mehr zu dem von dir beschriebenen Problem.
Hilfts?
Wenn nicht, weiß ich leider auch nix weiter.
Ciao
Thorsten
Anzeige
Gelöst: Makro starten aus *.xlsx
02.02.2020 20:51:26
Timm
Hallo Oberschlumpf,
nein, leider nicht. Der "Zombi" im VBA Project entsteht durch den Befehl "Workbook.Close", dann ist die Mappe zu aber der Code nicht fertig und dann kommt Excel anscheinend mit sich und der Welt nicht zurecht.
Es geht aber so:
Diese Arbeitsmappe:
Private Sub Workbook_Open()
Call MachWas
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
'Before closing the workbook, remove the schedule
Application.OnTime runtime, "SaveAndCloseWorkBook", , True
On Error GoTo 0
End Sub
Modul 1:
Public runtime
Sub MachWas()
Application.EnableEvents = False
Dim wbTMP As Workbook
For Each wbTMP In Workbooks
If wbTMP.Name = "Mappe1.xlsx" Then
Set wbTMP = Workbooks("Mappe1.xlsx")
BoOffen = True
Exit For
End If
Next
If BoOffen = False Then
MsgBox "Bitte erst Mappe1 öffnen!"
End
End If
MsgBox "Hallo!"
'Hier wird Mappe1 bearbeitet und gespeichert
Application.EnableEvents = True
runtime = Now + TimeSerial(0, 0, 2)
Application.OnTime runtime, "SaveAndCloseWorkBook", , True
End
End Sub
Sub SaveAndCloseWorkBook()
ThisWorkbook.Close SaveChanges:=True
End Sub
Somit kann man Makros ausführen per Hyperlink aus einer Excel-Datei ohne eigene Makros!
Wichtig dabei wäre noch, unter "Eigenschaften" von Mappe1 die Linkbasis einzustellen auf den Wert ".". Einfach nur ein Punkt. Zu finden unter "Datei - Informationen - Eigenschaften - Erweiterte Eigenschaften - Zusammenfassung - Linkbasis". Damit wird die automatische Aktualisierung / Vernichtung von Hyperlinks im Excel verhindert. (In meinem Fall wird die Vorlage in einem temporären Ordner geöffnet und der Hyperlink zeigt dann auch dorthin, obwohl er als Text in einer Formel hinterlegt ist. Nach setzten der Linkbasis auf den Wert "." wird der Hyperlink immer richtig befolgt.)
Schönen Sonntag euch allen,
Timm
Anzeige

41 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige