Nous avons vu il y a quatre jours comment afficher ou masquer un bouton par macro.
Pour rendre un bouton inactif, une seconde solution est possible : faire passer le bouton à « cacher » derrière une zone de texte dont on pourrait si nécessaire – pour la rendre invisible, ou simplement moins visible – masquer les bordures.
Ici, pour qu’elle soit plus visible, nous avons peint ici la zone de texte en jaune.
La macro passe la zone de texte en premier plan quand elle est à l’arrière-plan, et vice versa. Elle utilise une variable publique pour mémoriser si le bouton Jules se trouve au premier plan ou à l’arrière-plan.
Etrange coïncidence – Avec ces deux derniers articles, je vous ai montré comment masquer ou occulter un bouton alors même que nous apprenions il y a quelques jours que Monsieur Bouton et ses amis dirigeants de la société Générale avaient réussi – avec un cynisme cupide qui fait penser à Madoff – à se faire voter de majestueuses primes en récompense de leur performance notable : la baisse de plus de 50% en un an du cours de la Société Générale.
Pour rendre un bouton inactif, une seconde solution est possible : faire passer le bouton à « cacher » derrière une zone de texte dont on pourrait si nécessaire – pour la rendre invisible, ou simplement moins visible – masquer les bordures.
Ici, pour qu’elle soit plus visible, nous avons peint ici la zone de texte en jaune.
La macro passe la zone de texte en premier plan quand elle est à l’arrière-plan, et vice versa. Elle utilise une variable publique pour mémoriser si le bouton Jules se trouve au premier plan ou à l’arrière-plan.
Etrange coïncidence – Avec ces deux derniers articles, je vous ai montré comment masquer ou occulter un bouton alors même que nous apprenions il y a quelques jours que Monsieur Bouton et ses amis dirigeants de la société Générale avaient réussi – avec un cynisme cupide qui fait penser à Madoff – à se faire voter de majestueuses primes en récompense de leur performance notable : la baisse de plus de 50% en un an du cours de la Société Générale.
En très court...
RépondreSupprimerSub Bascule()
With ActiveSheet.Shapes("Jules")
.ZOrder 1 + (.ZOrderPosition = 1)
End With
End Sub
Note : on tire parti du fait que :
msoBringToFront est une constante =0
msSendToBack est égale = 1
False est égale à 0
et True à -1 !
Super !
RépondreSupprimerOn peut encore raccourcir, en nombre d'instructions, sinon en taille, avec :
Sub Bascule()
ActiveSheet.Shapes("Jules").ZOrder 1 + (ActiveSheet.Shapes("Jules").ZOrderPosition = 1)
End Sub