Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1128to1132
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

zweite Mappe öffen und Makroende abwarten | Herbers Excel-Forum

zweite Mappe öffen und Makroende abwarten
21.01.2010 22:47:09
Joni

Schönen Abend,
ich öffne von einer Mappe aus eine andere. Bei der 2. Mappe wird beim Öffnen ein Makro ausgeführt. Anschließend wird diese 2. Mappe wieder geschlossen. Das Makro der 1. Mappe sollte während die 2. offen ist aber Pause machen. Wie kann ich dies am einfachsten umsetzen?
Meine erste Idee ist, dass ich beim Öffnen der 2. Mappe einen Wert in eine Zelle schreibe. Dieser wird in einer Schleife abgefragt. Solange er da ist läuft die Schleife. Die 2. Makro entfernt diesen Wert als letzte Aktion vor dem Schließen. Dann wird die Schleife beendet und das Makro der ersten Mappe setzt fort.
Gibt es da bessere/einfachere Ansätze?
Gruß Joni

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: zweite Mappe öffen und Makroende abwarten
21.01.2010 23:25:46
Josef Ehrensberger
Hallo Joni,
solange das Makro in Mappe2 läuft, wird das Makro in Mappe1 sowieso nicht weiterlaufen.
VBA kennt kein Multitasking.
Gruß Sepp
AW: zweite Mappe öffen und Makroende abwarten
21.01.2010 23:51:05
Joni
Hallo Sepp,
danke für die Info, das habe ich gerade gemerkt (meine Rohfassung ist soweit fertig). Jetzt habe ich aber das Problem, dass das erst Makro nicht weiter läuft wenn die 2. Mappe geschlossen wird. Wie kann ich das Makro der ersten Mappe an der Stelle fortsetzen wo es unterbrochen wurde? Wenn das über einen Aufruf von der 2. Mappe aus als eigenes Makro gemacht wird, müsste ich alle Werte aus der Schleife zwischenspeichern, damit diese wieder an der gleichen Stelle fortgesetzt werden kann.
Vielleicht kennst du ja dafür eine Lösung.
Gruß Joni
Anzeige
AW: zweite Mappe öffen und Makroende abwarten
21.01.2010 23:55:10
Josef Ehrensberger
Hallo Joni,
dazu müsste man deine Code sehen. Vorallem wie die 2. Mappe Aufgerufen wird
und was der Code in der 2. Mappe anstellt.
Gruß Sepp
AW: zweite Mappe öffen und Makroende abwarten
22.01.2010 15:48:28
Joni
Hallo Sepp,
hier die vereinfachte Version.
Mappe 1:
Sub workbook_open()
Dim DATBZ1, DATEZ1, VBUNR, BBUNR As String
10  DATBZ1 = InputBox("Beginn Zeitraum (Format TT.MM.JJ)?", "Datum", Format(expression:=( _
DateSerial(Year(Date), 1, 1)), Format:="dd.mm.yy"))
If Not DATBZ1 Like "##.##.##" Then GoTo 10
Sheets("Objekte").Cells(4, 5) = DATBZ1
20  DATEZ1 = InputBox("Ende Zeitraum (Format TT.MM.JJ)?", "Datum", Format(expression:=( _
DateSerial(Year(Date), 12, 31)), Format:="dd.mm.yy"))
If Not DATEZ1 Like "##.##.##" Then GoTo 20
Sheets("Objekte").Cells(5, 5) = DATEZ1
28  VBUNR = "1" 'Beginn mit welcher Buchungsnummer?
Sheets("Objekte").Cells(6, 5) = VBUNR
29  BBUNR = "10" 'Ende mit welcher Buchungnummer?
Sheets("Objekte").Cells(7, 5) = BBUNR
Sheets("Objekte").Cells(9, 5) = 4 'Beginnzeile mit den Objektnummern
Call Kontoauszug_starten
End Sub

Sub Kontoauszug_starten()
Dim i As Variant
Dim k As Variant
Dim OBJ As Variant
Dim PFAD As String 'Pfad wo die Dateien gespeichert sind
Dim DATEI As String 'Dateiname der Kontoauszugsdatei
PFAD = ThisWorkbook.Path
DATEI = "Kontoauszug Personen Objekte.xls"
i = Sheets("Objekte").Cells(9, 5)
If Sheets("Objekte").Cells(i, 1) <> "" Then
OBJ = Sheets("Objekte").Cells(i, 1) 'Objekt auslesen
Sheets("Objekte").Cells(8, 5) = OBJ
Workbooks.Open Filename:=PFAD & "\" & DATEI
Else
GoTo Ende
End If
Ende:
End Sub
Mappe 2:
Sub workbook_open()
Application.Run ("'Kontoauszug Personen Objektliste.xls'" & "!Kontoauszug_schließen") 'Mappe 1  _
Marko aufrufen
End Sub
Mappe 1:
Sub Kontoauszug_schließen()
Dim DATEI As String 'Dateiname der Kontoauszugsdatei
Dim LISTE As String 'Dateiname der Abfrageliste
DATEI = "Kontoauszug Personen Objekte.xls" 'Mappe 2
LISTE = "Kontoauszug Personen Objektliste.xls" 'Mappe 1
Workbooks(LISTE).Activate
Workbooks(DATEI).Saved = True
Workbooks(DATEI).Close 'bis hierher klappt alles
MsgBox ("Test")
End Sub
Bis zur drittletzten Zeile funktioniert alles. Wenn dann die 2. Arbeitsmappe geschlossen wird, macht das Makro nicht mehr weiter. Wie kann ich dieses Problem löschen?
Ich hoffe auf deine Hilfe.
Gruß Joni
Anzeige
AW: zweite Mappe öffen und Makroende abwarten
22.01.2010 16:02:50
Joni
Hallo Sepp,
hatte gerade meinen Geistesblitz. Ich rufe das Makro in der Mappe 2 aus der Mappe 1 auf statt mit der der workbook_open Variante. So bleibt meine Mappe 1 "Master". Wenn ich die Mappe 2 dann aus der Mappe 1 schließe läuft das Makro auch weiter (und meine Schleife ist auch einfacher umzusetzen).
For i = k To 65000 Step 1
If Sheets("Objekte").Cells(i, 1) <> "" Then
OBJ = Sheets("Objekte").Cells(i, 1) 'Objekt auslesen
Sheets("Objekte").Cells(8, 5) = OBJ
Workbooks.Open Filename:=PFAD & "\" & DATEI
Application.Run ("'Kontoauszug Personen Objekte.xls'" & "!starten")
Workbooks(LISTE).Activate
Workbooks(DATEI).Saved = True
Workbooks(DATEI).Close
Else
GoTo Ende
End If
Next
Hin und wieder dauerts etwas. Danke für deine Hilfe.
Gruß Joni
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige