Thema Datum  Von Nutzer Rating
Antwort
Rot kleines Script, hohe CPU Auslastung
27.08.2019 11:24:22 soenke
NotSolved
27.08.2019 11:54:33 Gast45838
NotSolved
27.08.2019 12:05:30 soenke
NotSolved
27.08.2019 12:20:19 Gast1151
*****
NotSolved
27.08.2019 12:38:51 Gast28153
NotSolved
27.08.2019 13:21:59 Moritz
NotSolved
27.08.2019 13:51:48 soenke
NotSolved
27.08.2019 14:07:52 Gast83227
*****
Solved
27.08.2019 16:43:29 Gast61458
*****
Solved

Ansicht des Beitrags:
Von:
soenke
Datum:
27.08.2019 11:24:22
Views:
822
Rating: Antwort:
  Ja
Thema:
kleines Script, hohe CPU Auslastung

Hallo VBA-Freunde,

 

ich habe ein kleines Scrip gebaut, mit dem ich nach einer bestimmten Zeit, eine Message-Box erzeuge.

Die Message Box wird auch angezeigt, wenn die Arbeitsmappe minimiert ist.

Es funktioniert eigentlich einwandfrei, problematisch ist aber, dass das Macro 25% CPU-Leistung schluckt, obwohl mein CPU wirklich nicht schlecht ist (i5-8350U)..

Das Problem liegt wahrscheinlich an der Do While - Schleife. Ich habe es alternativ auch mit einer Sleep Funktion probiert. Das kann ich aber nicht benutzen, weil das Macro sonst beim Schließen und erneuten öffnen der Datei, Probleme macht.

 

Ich bin wirklich unerfahren mit VBA und habe mit Code Schnippseln gearbeitet also hoffe ich für Verständniss.

Vielen Dank im Vorraus,

Sönke

 

Code:

 

    Option Explicit

    Private Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Declare PtrSafe Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long


Private Sub Workbook_Open()
                
    Dim PauseTime, Start, Finish, TotalTime As Integer
    
                
    PauseTime = 50    ' Set duration.
    Start = Timer    ' Set start time.
    Do While Timer < Start + PauseTime
        DoEvents    ' Yield to other processes.
    Loop
    Finish = Timer    ' Set end time.
    TotalTime = Finish - Start    ' Calculate total time.
    
    SetForegroundWindow (FindWindow("xlMain", vbNullString))
    MsgBox "Vergessen Sie bitte nicht die Arbeitsmappe zu schließen!", vbSystemModal
End Sub

 

 

Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot kleines Script, hohe CPU Auslastung
27.08.2019 11:24:22 soenke
NotSolved
27.08.2019 11:54:33 Gast45838
NotSolved
27.08.2019 12:05:30 soenke
NotSolved
27.08.2019 12:20:19 Gast1151
*****
NotSolved
27.08.2019 12:38:51 Gast28153
NotSolved
27.08.2019 13:21:59 Moritz
NotSolved
27.08.2019 13:51:48 soenke
NotSolved
27.08.2019 14:07:52 Gast83227
*****
Solved
27.08.2019 16:43:29 Gast61458
*****
Solved