Bonjour,

je veux changer la couleur d'une case à cocher pour indiquer que l'action cochée est en cours. Elle est grise avant le lancement de la macro, puis verte quand la macro tourne et redevient grise à la fin.

J'arrive à la faire devenir verte, sans soucis. Mais si je mets le retour au gris, il ne se passe rien. Ce qui est bizarre c'est que ça marche en pas à pas, mais pas en éxécuté... Ca marche aussi si je mets une msgbox entre les 2 chgmnt de couleur...

Bref il me manque une petit astuce.

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
Public Declare Sub Sleep Lib "Kernel32.dll" (ByVal dwMillisenconds As Long)
Sub Macro()
ActiveSheet.Shapes("case_empref").Select
If Selection.Value = xlOn Then<div style="margin-left:40px">    Selection.ShapeRange.Fill.Visible = msoTrue
    Selection.ShapeRange.Fill.Solid
    Selection.ShapeRange.Fill.ForeColor.SchemeColor = 11
    Selection.ShapeRange.Fill.Transparency = 0#
    Selection.ShapeRange.Line.Weight = 0.75
    Selection.ShapeRange.Line.DashStyle = msoLineSolid
    Selection.ShapeRange.Line.Style = msoLineSingle
    Selection.ShapeRange.Line.Transparency = 0#
    Selection.ShapeRange.Line.Visible = msoFalse
 
    Sleep (5000) 'attente 5s pour simuler l'action
 
    Selection.ShapeRange.Fill.ForeColor.SchemeColor = 22
    Cells(4, 2).Select</div>End If
End Sub
Merci!