Ma macro utilise 50% du CPU

Bonjour,
J'ai crée Un comparateur qui boucle a l'infini sur Excel.
Mon souci viens du fait que ma macro utilise 50% en moyenne de ma ressource CPU.
Pour etre plus exact, la macro utilise 10% du CPU1 et 85% du CPU2 (C2D-6550)

Si c'était une macro pour faire "mumuse" sa n'aurait aucune incidence, mais j'ai appliqué cette macro sur 3 postes au travail

Voici mon Code complet:

Sub clear()
Do
If Worksheets("Lot").Range("C9") <> Worksheets("Data").Range("C3") Then

With Sheets("Lot")
.Range("C17:C200").ClearContents
.Range("G26").ClearContents
.Range("F32:G200").ClearContents
End With

With Sheets("Data")
.Range("A4:D200").ClearContents
End With

With Sheets("Data")
.Range("A3").QueryTable.Refresh BackgroundQuery:=False
End With

With Sheets("Lot")
.Range("C17").QueryTable.Refresh BackgroundQuery:=False
.Range("h27").QueryTable.Refresh BackgroundQuery:=False
.Range("F32").QueryTable.Refresh BackgroundQuery:=False
.Range("C9").Select

End With

Else
Attente (1)
End If

Loop
End Sub
--------------------------------------------------------------------------------------------
Sub Attente(seconde As Integer)
Dim Start, PauseTime
PauseTime = seconde
Start = Timer
Do While Timer < Start + PauseTime
DoEvents
Loop

End Sub
---------------------------------------------------------------------------------------------

Mon document Excel est composé de 3 feuilles ( Tolérance, Data, et Lot)
Ma macro intervient seulement sur les feuilles "Data" et "Lot"
Pour faire simple cette macro efface des données puis actualise des requêtes SQL
Je tiens a préciser que lors des actualisations des requêtes, ma charge CPU redescend a 1%
Mais la comparaison s'effectue en continu et n'a pas forcement besoin de passer au "Then" donc la charge est majoritairement a 50%.

Si j'enlève mon sous programme "attente", je ne peut même plus accéder aux feuilles Excel, le logiciel est surchargé immédiatement.

Comment puis je faire pour reduire cette charge CPU? (Si c'est possible)

2 réponses

  1. Bon je pense avoir une solution, au lieu de boucler ma macro a l'infini, il existe des macros événementielles.

    Je pense que sa règlerait mon probleme
    Donc je vais me pencher sur le sujet.
    0
    1. En effet cela a fonctionné parfaitement..
      Macro active tous le temps et 0% de charge CPU
      Vu que personne ne m'a aidé, je garde ma solution pour moi :)
      0