Bonjour à tous
Voilà je souhaite mettre 2 boutons dans ma feuille excel, mais je n'aime pas la forme du bouton de base (gris en mode windows95)
du coup j'ai plutôt fait une zone de texte encadré avec fond transparent et du texte au milieu et je lui ai affecté une macro.
Soucis par rapport au bouton classique ou on voit le bouton "s'enfoncer" ici et bien il ne se passe rien, et la macro que je lance avec se bouton est justement
pas "visible" je voudrais donc que mon bouton (sous forme de zone de texte), change de couleur pendant 1/10 seconde lorsque que je clique dessus pour confirmer que le bouton à été cliqué.
est-ce possible?
je vous joint le fichier, ici le bouton 1 blanc lance la macro "chiffre55" qui met un chiffre 55 en case A5, oui c'est de la très grosse macro
J'ai trouvé des pistes sur le net avec le mode "Sleep"
En début de macro "celle qu'actionne le bouton"
- Je change la couleur du bouton en vert (celà fonctionne si je ne met que cette partie du code)
- je met un sleep de 100
- Je change a nouveau le bouton en blanc (il ne se passe rien le bouton reste blanc)
#If VBA7 And Win64 Then
Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
#Else
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
#End If
Sub chiffre55()
'transforme le bouton en vert
ActiveSheet.Shapes.Range(Array("TextBox 1")).Select
With Selection.ShapeRange(1).TextFrame2.TextRange.Characters(1, 8).Font.Fill
.Visible = msoTrue
.ForeColor.ObjectThemeColor = msoThemeColorAccent6
.ForeColor.TintAndShade = 0
.ForeColor.Brightness = 0
.Transparency = 0
.Solid
End With
With Selection.ShapeRange.Line
.Visible = msoTrue
.ForeColor.ObjectThemeColor = msoThemeColorAccent6
.ForeColor.TintAndShade = 0
.ForeColor.Brightness = 0
.Transparency = 0
End With
'mode sleep
Sleep 100
'remet le bouton en blanc
With Selection.ShapeRange.Line
.Visible = msoTrue
.ForeColor.ObjectThemeColor = msoThemeColorBackground1
.ForeColor.TintAndShade = 0
.ForeColor.Brightness = 0
.Transparency = 0
End With
With Selection.ShapeRange(1).TextFrame2.TextRange.Characters(1, 8).Font.Fill
.Visible = msoTrue
.ForeColor.ObjectThemeColor = msoThemeColorBackground1
.ForeColor.TintAndShade = 0
.ForeColor.Brightness = 0
.Transparency = 0
.Solid
End With
'execution de la macro
Range("A5") = 55
End Sub