Laufzeitschwankung Makro/Speichern
24.07.2018 18:18:03
kathrin
ich habe ein Projekt bei dem 8-10 Leute in einer freigegebenen Arbeitsmappe parallel arbeiten. Die Datei hat eine Größe von ca. 700KB (welche während der Nutzung auf bis zu 1.5MB anwächst). Neben wenigen Formeln enthält die Arbeitsmappe auch einige Makros die von den Mitarbeitern ausgeführt werden.
Nun haben wir bei der Ausführung eines dieser Makros folgendes Problem: Normalerweise benötigt das Makro zur Ausführung ca. 1-5s. In manchen Fällen braucht es jedoch plötzlich 20-50s. In diesen Fällen wird der Bildschirm oft auch weiß und Excel zeigt Keine Rückmeldung an.
Das Makro (leicht vereinfacht):
Private Sub Btn_DatenImport_Click()
On Error GoTo Fehler
Application.ScreenUpdating = False
Dim s as Double
Mappe aktualisieren
s = Timer
ActiveWorkbook.AcceptAllChanges
Debug.Print Aktualisieren: & Timer s
Zwischenablage in bestimmten Bereich einfügen
Dim wksDaten as Worksheet
Set wksDaten = Worksheet(Daten)
wksDaten.Cells(4,1).PasteSpecial
Makro für Verarbeitung von Datenimport aufrufen
s = Timer
Call Tabelle5.Import
Debug.Print Import: & Timer s
Arbeitsmappe speichern
s = Timer
Application.DisplayAlerts = False
ThisWorkbook.Save
Application.DisplayAlerts = True
Debug.Print Speichern: & Timer s
Exit Sub
Fehler:
Msgbox Err.Description
End Sub
Um herauszufinden, wo der große Zeitzuwachs liegt, habe ich versucht schonmal eine einfache Zeitmessung einzubauen. Dabei fällt bei langer Laufzeit ca. 90% und mehr auf das Aktualisieren (wenn ich stattdessen Speichern nehme ist es das Gleiche). Zudem haben wir beobachtet, dass andere Nutzer während das Makro dort "hängt" weiterhin ohne Probleme die Arbeitsmappe speichern können (was ja normalerweise nicht möglich ist, während ein anderer Nutzer speichert). Ein Befehl zum Speichern der Arbeitsmappe findet sich auch in anderen Makros, dort konnte aber so eine lange Laufzeit bisher nicht beobachtet werden.
Ich konnte bisher auch keinen besonderen Zusammenhang beobachten, wann dieses Problem auftritt. Die Inputdaten unterscheiden sich bei den verschiedenen Ausführungen auch kaum, hier scheint das Problem eher nicht zu liegen. Auch die Zeitspanne die seit dem letzten Speichern zurück liegt, scheint nicht das Kriterium zu sein. Ich bin daher etwas ratlos würde das Makro immer so lange benötigen, dann wüsste ich wenigstens dass es am Makro liegt und könnte das auch besser testen. Aber so fällt es auch schwer das Problem im Test zu reproduzieren.
Habt ihr eine Idee wo die Ursache für die stark schwankende Ausführungszeit liegen kann? Ist das wirklich das Speichern? Liegt es vielleicht an Netzwerkproblemen / Arbeitsspeicher o.ä.? Oder vielleicht an dem aufgerufenen Makro Import? (Hier werden einige Tabellenbereiche in Arrrays eingelesen, leicht verändert und zurückgeschrieben). Irgendwelche Ideen wie man das Problem abstellen kann?
Wir haben inzwischen die Priorität für Excel auf Hoch eingestellt, seitdem stürzt es zumindest nicht mehr komplett ab (was vorher manchmal passiert ist), aber die langen Laufzeiten bleiben weiterhin.
An dieser Stelle schon einmal herzlichen Dank für jede Hilfe und Ideen!
Viele Grüße
Kathrin