Alternative zu .Wait (Now + TimeValue...
19.10.2017 12:08:14
Markus
ich habe ein relativ großes Makro, bei dem ich zwischen verschiedenen Arbeitsmappen springe.
Damit das Makro schneller läuft, setze ich hier zu Beginn das ScreenUpdating auf False und rufe dann jedes Mal das folgende Makro auf, wenn ich den Status aktualisieren möchte.
Dieses Makro schreibt dabei lediglich die Status-Updates auf Blatt 3 der Hauptdatei und setzt dazu das ScreenUpdating immer kurz auf True, damit der User das Update auch sieht.
Das Problem dabei:
Auf dem Laptop läuft alles einwandfrei und wie beabsichtigt, auf dem Desktop jedoch sehe ich die Status-Updates nicht "live", sondern erst gebündelt am Ende des Hauptmakros, d.h. hier sehe ich alle auf einmal, statt jeweils eins nach dem anderen.
Laptop und Desktop haben das gleiche Excel und Windows installiert, nur ist der Desktop vermutlich schneller.
Kann mir jemand sagen, ob es hier eine (bessere) Alternative für das Now + TimeValue gibt, die auf allen Rechnern funktioniert ?
Daa Status-Makro:
Sub UpdateStatus(Optional varStatus As String)
Dim varNextRow As Long
varMainFile.Activate
With varMainFile.Worksheets(3)
.Activate
varNextRow = .Range("D3:D" & Rows.Count).Cells.SpecialCells(xlCellTypeBlanks).Row
.Range("D" & varNextRow).Value = "P"
.Range("E" & varNextRow).Value = varStatus
End With
With Application
.ScreenUpdating = True
.Wait (Now + TimeValue("00:00:01"))
.ScreenUpdating = False
End With
End Sub
Im Hauptmakro wird varMainFile wie folgt definiert:
Set varMainFile = ActiveWorkbook
Vielen Dank im Voraus, Markus