Microsoft 365 Bouton clignotant

Moreno076

XLDnaute Impliqué
Bonjour le forum.
Je souhaiterais que mon bouton actuellement bleu soit clignotant au démarrage du fichier.
Pour les couleurs je souhaiterais qu'il clignote jaune et gris.
Le bouton provoque un chargement de divers macros, une fois la fin je souhaiterais qu'il devienne vert avec affichée "Gestion terminée".
J'ai essayé avec userform et des exemples dans le forum ca bug à chaque fois.
J'aimerais pouvoir comprendre et donc si vous pouvez modifier la macro ci-dessous.

Merci bien !


Private Sub CmdDémarrer_Click()
Me.CmdDémarrer.Caption = "Gestion en cours" 'change le texte du bouton
Dim Syn As Workbook
On Error GoTo GestionDesErreurs
Set Syn = ThisWorkbook
With Me.CmdDémarrer
.BackColor = &H8000000F 'défini la couleur du bouton
.Enabled = False
End With
VerifDossier ' recherche des fichiers rupture, réappro et X3
ChargementDesFeuilles Syn ' ouverture, transfert et fermeture des fichiers
Sheets(1).Select
MiseEnAffichageRupEtRéa
RechercheDoublon

Me.CmdDémarrer.Caption = "Gestion terminée !" 'change le texte du bouton

ChgFormatDate
Exit Sub
 

Dudu2

XLDnaute Barbatruc
Bonjour,
Comprends pas trop mais tu dois avoir ton idée.
Perso je ferais un Application.OnTime vers un Sub dans le Worksheet_Activate() ou dans le Workbook_Open() si la feuille du bouton est active à l'ouverture du classeur.
Ce Sub se relancerait avec Application.OnTime tant que ça clignote toutes les secondes et testerait un flag niveau Module pour gérer la couleur en cours.
Le clic sur le bouton changerait la couleur en vert signifiant la fin du clignotement.
 
Dernière édition:

jmfmarques

XLDnaute Accro
Bonjour sylvanu
Sa limite : le clignotement maximal est de une fois par seconde.
Il est aisé de mettre en place une autre fréquence : il suffit pour cela de rappeler systématiquement immédiatement ( par Now) la procédure et d'en déterminer en son sein, par une variable static basée sur la valeur de la fonction Timer, si les instructions qu'elle abrite sont ou non à exécuter compte tenu de la différence entre ce que retourne Timer et la variable static.
Cet aspect n'est donc pas vraiment un problème en soi.

Je trouve par contre quelque peu "abusif" d'utiliser processeur et ressources à une fin qui me parait plus ludique qu'autre chose.
 

jmfmarques

XLDnaute Accro
Mais là pour un appel par seconde il dort profondément entre 2 appels (pour ce processus).
Nul ne conteste ce fait et cette différence de mobilisation.
Ce n'est pas cet aspect, que je mets en cause, mais celui, plus simplement et directement, (et à des fins dont l'utilité réelle est questionnable) de l'exécution d'instructions (quelle que soit la cadence retenue) de manière répétitive.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Tel qu'écrit, le processeur est mobilisé moins de 15ms par seconde, soit 1.5% de temps de charge.
Ensuite utilité réelle ou non ne relève que du demandeur et de ses besoins.
Une question est posée, j'y réponds sans jugement de valeur n'ayant aucune connaissance du but recherché.
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil et ses intervenants

[aparté univoque]
C'est dans l'air du temps pourtant, non ?
Non point de juger, mais d'indiquer au demandeur que la piste suivie n'est pas forcément la plus pertinente pour l'utilisateur final.
(désolé c'est mon inclination au K.I.S.S qui ressort même le week-end ;))
[/aparté univoque]
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour le fil, Bonjour Staple,
Indiquer n'est pas juger.
Je réagissait sur ces mots :
Je trouve par contre quelque peu "abusif" d'utiliser processeur et ressources à une fin qui me parait plus ludique qu'autre chose.
... et à des fins dont l'utilité réelle est questionnable

J'ai utilisé ce stratagème de nombreuses fois sur des outils où les macros étaient très, très longues comme des analyses de grosses base de données ou des enregistrement très, très longs.

Toujours la même méthode. Un énorme bouton : Clignotement Bleu/Jaune : Je bosse, Rouge : J'ai un problème, Vert : J'ai fini.
Le PC peut être surveillé de loin, sans être obligé d'aller lire une petite phrase dans le StatusBar.
Et les utilisateurs ont toujours apprécié. Donc ça dépends du contexte.
 

Staple1600

XLDnaute Barbatruc
Re

sylvanu
[addenda dans l'aparté de l'aparté]
Je n'ai jamais dit que ce n'était pas intéressant.
Je voulais dire de manière générale* qu'on peut se permettre de signaler à un demandeur quand il est dans le "mésusage" d'Excel ou qu'il utilise une enclume pour enfoncer un clou, sans pour autant être dans le jugement.
Juste penser à l'ergonomie d'un classeur et à l'utilisateur final.
On verra bien dans les prochaines questions si on tend vers la complexification ou la simplification d'utilisation ;)
[/addenda dans l'aparté de l'aparté]

*: j'ai bien précisé: générale je ne parle donc pas de ce fil en particulier ni de personne en particulier dans celui-ci.
 

Statistiques des forums

Discussions
312 201
Messages
2 086 164
Membres
103 149
dernier inscrit
Deepkneec