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

Pause einbauen in Makro

Pause einbauen in Makro
19.05.2021 11:22:44
Maxi
Hallo zusammen,
durch die Hilfe im Forum habe ich bereits fast das, was ich auch haben möchte. Es geht um folgendes: Ein Makro, das mir verschiedene Excel-Dateien öffnet und das wiederum darin enthaltene Makro ausführt. Soweit funktioniert das auch, nur habe ich das Problem, dass die 5 Excel-Dateien nach dem öffnen Zeit benötigen, um sich selbst zu aktualisieren, das Makro darf also für jede Datei erst nach circa 10 Sekunden ausgeführt werden, sonst werden die generierten Emails mit einem Anhang verschickt, der nicht aktuell ist. Ich möchte also verhindern, alle Dateien erst zu öffnen, auf die Aktualisierung zu warten (geschieht automatisch) und jede separat zu speichern um dann das u.g. Makro auszuführen. Wie bekomme ich die Pause zwischen öffnen der Dateien und ausführen des enthaltenen Makros?
Danke!!!
Grüße Maxi

Public Sub Main()
Call DateiOeffnen("FirmaXY1", "Makro1")
Call DateiOeffnen("FirmaXY2", "Makro2")
Call DateiOeffnen("FirmaXY3", "Makro3")
Call DateiOeffnen("FirmaXY4", "Makro4")
Call DateiOeffnen("FirmaXY5", "Makro5")
End Sub

Public Sub DateiOeffnen(strFilename As String, strMakroname As String)
Const FOLDER_PATH As String = "Ordnerpfad"
Dim objWorkbook As Workbook
Set objWorkbook = Workbooks.Open(Filename:=FOLDER_PATH & strFilename)
Call Application.Run("'" & objWorkbook.Name & "'!" & strMakroname)
Call objWorkbook.Close(SaveChanges:=False)
Set objWorkbook = Nothing
End Sub

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Pause einbauen in Makro
19.05.2021 11:24:31
Hajo_Zi
Hallo Maxi,
vielleicht
Application.Wait Now + TimeSerial(0, 0, 10)
GrußformelHomepage
AW: Pause einbauen in Makro
19.05.2021 11:25:58
Beverly
Hi Maxi,
vielleicht hilft ja, vor Ausführen des nächsten Makros jeweils die Codezeile

Application.Wait Now + TimeValue("00:00:10")
einzufügen.

GrußformelBeverly's Excel - Inn
Anzeige
AW: Pause einbauen in Makro
19.05.2021 11:41:18
Maxi
Danke für den Vorschlag, scheint auch zu funktionieren allerdings aktualisieren sich die Excels nicht wenn ich sie mit dem Makro öffne. Öffne ich sie manuell aktualisieren sie sich selbst. Woran könnte das liegen?
Grüße:)
AW: Pause einbauen in Makro
19.05.2021 12:42:34
Beverly
Ist die Aktualisierung in den zu öffnenden Dateien vielleicht auf Manuell eingestellt? Dann könntest du in das Makro der Mappe noch ein Calcualte einbauen.

GrußformelBeverly's Excel - Inn
Anzeige
AW: Pause einbauen in Makro
19.05.2021 12:02:18
Nepumuk
Hallo Maxi,
war soll sich aktualisieren, Formel, Datenverbindungen ...?
Mit Wait ist Excel nicht in der Lage irgendetwas auszuführen. Das blockiert alles.
Gruß
Nepumuk
AW: Pause einbauen in Makro
19.05.2021 12:22:46
Daniel
Hi
Was genau bedeutet "die Datei muss sich erst aktualisieren"?
Wenn da von irgendwo weitere Daten importiert werden, müsstest du mal in die Einstellungen und Eigenschaften des Imports reinschauen, ggf gibt es dort eine Einstellung, mit der man festlegen kann, ob die Aktualisierung im Hintergrund stattfinden soll oder ob alles warten muss, bis diese fertig ist.
Gruß Daniel
AW: Pause einbauen in Makro
19.05.2021 13:26:17
Maxi
Hallo zusammen,
also: Die 5 Dateien, die ich auch verschicken will, enthalten Grafiken, die sich beim Öffnen bis zum aktuellen Datum aktualisieren, die Daten werden aus einer weiteren Excel-Datei bezogen.
Grüße
Anzeige
AW: Pause einbauen in Makro
19.05.2021 13:30:21
Daniel
besonders informationsfreudig bist du ja nicht.
Wie beziehst du die Daten aus der weiten Exceldatei?
hast du das, was ich dir empfohlen habe, mal angschaut und überprüft?
Gruß Daniel
AW: Pause einbauen in Makro
19.05.2021 13:40:15
Maxi
Hi Daniel,
sorry - ich versuche so detailreich wie möglich:
1. Es gibt eine Datei zur Stammdatenpflege von 5 Lieferanten, in die täglich die aktuellen Tageswerte fortlaufend eingetragen werden.
2. Daraus ergeben sich pro Lieferant jeweils eine Excel (in Summe 5), in der eine Pivot-Tabelle ist, die Daten aus Tabelle von Punkt 1. nimmt und daraus Grafiken über die aktuellen Tageswerte erstellt. Diese Grafiken / Pivot-Tabelle aktualisiert sich automatisch beim Öffnen der jeweiligen Datei, der Haken bei "Aktualisieren beim Öffnen der Datei" ist gesetzt.
Problem: Wenn ich mit meinem gezeigten Makro die 5 Excel-Dateien öffne, aktualisieren sie sich leider nicht mehr automatisch, sondern bleiben auf dem letzten Speicherstand (ab dem Tag an dem ich zuletzt manuell abgespeichert habe)
Hoffe so ists verständlicher ;)
Anzeige
AW: Pause einbauen in Makro
19.05.2021 13:31:59
Nepumuk
Hallo Maxi,
versuch es mal so:
Code:

[Cc]

Public Sub DateiOeffnen(strFilename As String, strMakroname As String) Const FOLDER_PATH As String = "Ordnerpfad" Dim objWorkbook As Workbook Set objWorkbook = Workbooks.Open(Filename:=FOLDER_PATH & strFilename, UpdateLins:=3) Call Application.Run("'" & objWorkbook.Name & "'!" & strMakroname) Call objWorkbook.Close(SaveChanges:=False) Set objWorkbook = Nothing End Sub

Gruß
Nepumuk
Anzeige
AW: Pause einbauen in Makro
19.05.2021 14:47:47
Maxi
Hi Nepumuk,
leider funktioniert das auch nicht, gleiches Problem wie zuvor, Dateien sind nicht auf aktuellem Stand...

Public Sub Main()
Call DateiOeffnen("FirmaXY1", "Makro1")
Call DateiOeffnen("FirmaXY2", "Makro2")
Call DateiOeffnen("FirmaXY3", "Makro3")
Call DateiOeffnen("FirmaXY4", "Makro4")
Call DateiOeffnen("FirmaXY5", "Makro5")
End Sub

Public Sub DateiOeffnen(strFilename As String, strMakroname As String)
Const FOLDER_PATH As String = "Ordnerpfad"
Dim objWorkbook As Workbook
Set objWorkbook = Workbooks.Open(Filename:=FOLDER_PATH & strFilename, UpdateLinks:=3)
Call Application.Run("'" & objWorkbook.Name & "'!" & strMakroname)
Call objWorkbook.Close(SaveChanges:=False)
Set objWorkbook = Nothing
End Sub

Anzeige
AW: Pause einbauen in Makro
19.05.2021 14:54:31
Nepumuk
Hallo Maxi,
nächster Versuch:
Code:

[Cc]

Public Sub DateiOeffnen(strFilename As String, strMakroname As String) Const FOLDER_PATH As String = "Ordnerpfad" Dim objWorkbook As Workbook Set objWorkbook = Workbooks.Open(Filename:=FOLDER_PATH & strFilename, UpdateLinks:=3) Call objWorkbook.RefreshAll Call Application.Run("'" & objWorkbook.Name & "'!" & strMakroname) Call objWorkbook.Close(SaveChanges:=False) Set objWorkbook = Nothing End Sub

Gruß
Nepumuk
Anzeige
AW: Pause einbauen in Makro
19.05.2021 16:05:01
Maxi
DANKE! Das hat funktioniert:)
Viele Grüße!
Maxi

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige