Bonsoir,

J'essaie de me bricoler un métronome

J'ai un tempo et je veux défiler une grille de 16 cellules sur 4 rangées.

Chaque fois que j'arrive sur une cellule, j'emets un bip je la met en bleu, j'attends mon tempo, j'efface ma couleur et je passe à la suivante.

Ca fonctionne sauf que au bout de quelques cellules l'écran n'est pas raffraichit.

je ne pense pas que le screenupdating soit concerné puisque celui masque l'exécution en début puis le réactive en fin. (bon j'ai fait un test hasardeux, qui ne fonctionne pas, ça fige quand même au bout de quelques cellules.

je verrais plutot un refresh de buffer qui se remplit même si la macro est très simple

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 
Private Declare Function Beep Lib "kernel32" (ByVal Fq As Long, ByVal Tm As Long) As Long
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub Defilement()
Dim tempo As Integer
' le tempo choisi
Range("B3").Select
tempo = 60000 / Range("W3").Value
 
'Calage
For r = 1 To 4
    Beep 500, 100
    Sleep tempo
Next
 
'Répétion
For l = 0 To 3
    For n = 0 To 15
    Application.ScreenUpdating = True
        Cells(l + 3, n + 3).Interior.ColorIndex = 26
        Beep 500, 100
        Sleep tempo
        Cells(l + 3, n + 3).Interior.ColorIndex = xlNone '34
    Application.ScreenUpdating = False
 
        Next n
    Next l
End Sub
Merci pour vos conseils
Denis