ich habe das Problem dass mein Programm manchmal zu schnell ist.
Konkret öffnet mein Programm eine Exceldatei und kopiert eine Arbeitsmappe ich die aktuelle Datei.
Dort werden Daten ausgetauscht.
Anschließend die Exceldatei wieder geöffnet und die geänderte Arbeitsmappe zurückübertragen.
Da das ganze auf einem Serverabliegt hat es sich, vor allem nachdem ich es auf Speed getrimmt habe, schonmal in einem Durchlauf hintereinander verschluckt und wollte eine Kopie speichern (ich nehme an die Exceldatei war noch offen oder hat den Eindruck gemacht noch offen zu sein).
a) gibt es die Möglichkeit an einer Stelle eine Pausefunktion für 0,5 Sekunden einzufügen
b) oder eine Operation, die
- prüft ob die Datei irgendwo offen und damit gesperrt ist
- solange wartet bis die Datei wieder freigegeben ist, bzw. maximal 5 Sekunden.
c) Tipps?
Ich bin mir nicht sicher, ob sich das Problem mit den Screenupdates zur Geschindigkeitsoptimierung verschlimmert hat.
Ggf. schaue ich, ob ich mit Aufgliederung der Funktionen in der Abfolge überflüssiges Schließen und öffnen vermeiden kann.
With Application
.ScreenUpdating = False
.Calculation = xlCalculationManual
.EnableEvents = False
End With
'Zeit = Timer
Call CSVladen_Click
Call Uebertragen_Click
Call Aktualisieren_Click
'Call Uebertragen_Click
'Differenz = Timer - Zeit
'i = 100 * Differenz
'Differenz = i / 100
With Application
.ScreenUpdating = True
.Calculation = xlCalculationAutomatic
.EnableEvents = True
End With
'MsgBox "Tagesprogramm in " & Differenz & " Sekunden geplant"
End Sub