Hallo Andreas,
Ich muss gestehen, dass ich die Erklärungen in deinem UP nicht
so recht verstanden hatte. Deswegen aich der Schuss in Blaue.
Wenn du noch mal ausführlicher erklären kannst, wie deine
Dateien aufgebaut sind, und was deine Makros genau machen
(evtl. Mappe hochladen), kommen wir vielleicht weiter.
Ich versuche es mal (sinngemäß):
sub hautpmakro()
for i=1 to 10
workbook.open filename:=„Vorlage.xlsx“
call machmal1
call machmal2
call machmal3
call machmal4
call machmal5
workbook.close
next i
end sub
sub machmal1()
'Daten werden über Direktlink aus nicht geöffneter Datei eingelesen
end sub
sub machmal2()
'Daten werden in Vorlage kurz ausgewertet (Pivot-Tabellen aktualisiert, Werte sortiert)
end sub
sub machmal3()
'Grafiken in Vorlage werden inhaltlich und formativ aktualisiert (da ich zeitabhängige Werte habe, müssen die Bezüge aktualisiert werden)
end sub
sub machmal4()
'Speicherung der Datei in spezifische Datei auf dem Netzwerk
end sub
sub machmal5()
'Export Datei in pdf
end sub
(Bei machmal4 und machmal5 öffnen sich dann die Anzeigen zum Status)
Ich ersetze sämtliche Formeln direkt als Werte mittels (beispielhaft) range(„a1“).value=range(„a1“).value
grundsätzlich gehe ich wie folgt vor:
.range(„a1“).formulaR1C1="= …"
with sheets(„Tab1“)
.range(„a1“).formulaR1C1="…"
end with
auch grafiken werden auf diese Art angesteuert. Einzig wenn ich textfeldern inhalt zuweise, muss ich select benutzen (hab ich bisher nicht rausgefunden, wie das anders geht). Wenn ich das noch beseitigen könnte, dann könnte ich theoretisch auf auf ScreenUpdate vezichten.
Grundproblem: für i=1 (im „hauptmakro()“) dauert die Erstellung von Öffnung der Vorlage bis Speichern Zeit X. für i=2 dauert das ganze dann X + b. Für i=3 dauert der Vorgang insgesamt dann schon X + b +b und so weiter. der zusätzliche Zeitaufwand b ist dabei relativ konstant (ein einzulesender Wert ist etwas variabel, so dass es da mal ein paar Sekunden mehr dauern kann). Führe ich machmal1 bis machmal5 nur für einen Fall aus, so ist der Zeitaufwand ungefahr nur 1/4 so groß wie für den Durchlauf mit i=1.
Hochladen von Dateien geht wegen der Inhalte nicht. Eventuell kann ich dir mal eine txt-Datei mit den Codes schicken (PN) - nachprüfen geht dann nur eben nicht.
Noch eine Hinweis vielleicht. Ich habe das Ganze praktisch ohne feste Bezüge programmiert. Es gibt nur eine einzige Übersichtsdatei, in der alle Pfade der Quelldateien stehen. Ich hoffe nicht, dass sich hierdurch Datenmenge anhäufen und zum oben beschriebenen Zeiteffekt fürhen.
Grüße.