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
 

jmfmarques

XLDnaute Accro
Bon ...
1) Un avant-dernier mot très personnel, dans ce cas :
Va pour une observation de loin de la couleur "en cours", mais je ne vois pas en quoi son clignotement ajouterait quoi que ce fût de plus utile. Même Microsoft n'utilise pas de telles démarches visuelles, sauf à se servir de curseurs de type ani. Les traitements "longs" sont toujours décomposables (au besoin par paquets éventuellement), (en distinguant les traitements synchrones de ceux asynchrones), ce qui permet d'afficher où on veut et quand on veut, dans la "grosseur" que l'on veut, où on en est de l' "avan cement".
2) et un autre dernier mot, non moins personnel :
Se garder du paradoxe qui consiste à ralentir un processus au prétexte de palier les inquiétudes éventuelles résultant de processus lents ... :)

PS : on me verra toujours (question d'honnêteté fondamentale) réagir de cette manière, lorsque je l'estimerai souhaitable, et encore plus (mais pas uniquement) lorsque les connaissances visibles du demandeur présentent ostensiblement certaines limites.

Je vous laisse le soin (mais maintenant sans moi) de juger de l'opportunité de conseiller de telle ou telle autre manière.
Amitiés à tous
 

Dudu2

XLDnaute Barbatruc
Je ne sais pas si je dois rebondir sur ta remarque tant je suis surpris qu'un gadget de clignotement insignifiant en code, en design et en ressources provoque un tel émoi. J'ai parfois utilisé cette méthode pour "flasher" à un endroit donné d'une feuille pour attirer l'attention, c'est bien l'objet du bidule. Et si Moreno076 qui a posé la question initiale a des raisons de la faire qu'il ne nous a pas exposées, je ne vois pas en quoi nous serions autorisés à challenger son choix dont la mise en œuvre, fut-elle asynchone, est totalement triviale.
C'est bien Moreno076 qui doit écarquiller les yeux devant cette discussion. Attention de ne pas cligner sans justification ! ;)
Bises à tous
 

Moreno076

XLDnaute Impliqué
Bonjour à tous, je vois que mon sujet fait parler lol Désolé je suis pris pas mal ce jour je n'ai pas le temps de regarder je regarderais surement demain. Merci pour votre collaboration en tout cas. Je met le fichier en PJ si ca peut vous aider.
 

Pièces jointes

  • GRv32.xlsm
    327.7 KB · Affichages: 13

jmfmarques

XLDnaute Accro
L'examen de ce classeur (que j'ai exceptionnellement ouvert) n'a fait que me conforter dans ma conviction de la nécessité de ne pas dépenser de l'énergie à des choses sans grand intérêt et de la vouer à des aspects bien plus fondamentaux.
J'ignore s'il convient de s'attarder outre mesure sur le poids relatif de chaque petite goutte d'eau. Je sais par contre que celui d'un grand nombre de gouttes d'eau peut devenir un véritable handicap.
Mais je veux croire que tu recevras à ce propos de très bons conseils bien plus utiles que celui d'une méthode pour faire clignoter un bouton.
 

Dudu2

XLDnaute Barbatruc
Chercher à unifier les forces de l'Univers, percer le mystère de la matière et de l'énergie noires ou celui de la conscience extra-corporelle sont, j'en conviens, de bien plus nobles causes auxquelles consacrer son énergie. Vraiment, tu n'aurais pas dû ouvrir ce misérable classeur dont la problématique insignifiante abaisse l'âme à de puériles assemblages dont la portée symbolique ne dépasse pas celle d'une queue de cuillère à soupe. Laissons les esprits simples s'affairer aux tâches ménagères de la vie bureautique, ces manants du conceptuel s'en repaissent avec délectation et font naïvement clignoter des boutons. :cool:
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil (qui devient pelote -oui je sais chut !)

[apres le grain de sel, la poudre de thé - FBQJELAT]
Chercher à unifier les forces de l'Univers, percer le mystère de la matière et de l'énergie noires ou celui de la conscience extra-corporelle
Si je puis me permettre, une seule et même personne ne peut pas faire ces trois recherches.
Ou alors un signal d'alerte commencera à clignoter quand je lirai des trucs censément scientifiques.
;)
[/apres le grain de sel, la poudre de thé - FBQJELAT]

PS: Quand il y a pénurie de question, il y a inflation de digression.
Mais est-ce si grave ?

PS2: La présence d'émoticone dans mes messages est censée indiquer sur quel registre je me situe
 

Moreno076

XLDnaute Impliqué
Re à tous.

Après avoir lu vos messages et récits ;) le bouton bleu que je souhaite faire clignoter est tout simplement pour attirer l'attention pour se dire c'est ici que tout commence. Au départ il pourrait cliquer d'un bleu ciel pour fini en vert indiquant Gestion terminée. "Tout simplement".
 

Moreno076

XLDnaute Impliqué
J'ai reporté le code dans ton fichier. Ce code ne fonctionne pas chez moi, il manque les liaisons externes. Ajuste les couleurs selon tes préférences.
Bonjour Dudu génial.
C'est simple et efficace je l'ai adapté sur l'évolution de mon fichier.
Ca fonctionne à merveille.
un GRAND merci. :D
Petite questions :

1/ Comment changer la couleur final du texte?
Me.CmdDémarrer.Caption = "Gestion terminée !" 'change le texte du bouton
Call FinClignotte
J'ai essayé avec .fontcolor mais je ne sais pas où l'adapter.

2/Est il possible de faire disparaitre le bouton une fois la gestion terminée?

3/Ou de le déplacer à la fin de la gestion en dessous des boutons imprimante et sauvegarde et que le bouton revienne à son état d'origine en ayant effacer préalablement les lignes de A à N?

Merci encore c'est super
 

Pièces jointes

  • GRv39test.xlsm
    320.8 KB · Affichages: 2

Moreno076

XLDnaute Impliqué
J'ai essayé pour le reset j'ai réussi. Lorsque je reclique ca fonctionne j'ai juste un message à la fin

1583070017127.png
 

Pièces jointes

  • GRv46test.xlsm
    249.8 KB · Affichages: 2
Dernière édition:

Dudu2

XLDnaute Barbatruc
Pour la couleur de font c'est Command Button.ForeColor
Pour le faire disparaitre c'est Command Button.Visible = False

Si tu veux relancer le clignotement (?) il faut le faire avec la fonction comme dans WorkBook_Open().
Sinon je n'ai pas compris ce que tu veux faire. Je ne peux pas tester car les liaisons externes absentes font planter la Macro.

Quand ça plante, tu vois où ? (Debug, ligne jaune)
 

Moreno076

XLDnaute Impliqué
Pour la couleur de font c'est Command Button.ForeColor
Pour le faire disparaitre c'est Command Button.Visible = False

Si tu veux relancer le clignotement (?) il faut le faire avec la fonction comme dans WorkBook_Open().
Sinon je n'ai pas compris ce que tu veux faire. Je ne peux pas tester car les liaisons externes absentes font planter la Macro.

Quand ça plante, tu vois où ? (Debug, ligne jaune)

C'est bon tout fonctionne je voulais en fait que le bouton se reinitialise pour redemarrer une deuxieme fois la totalité des macros.
J'ai mis du temps mais c'est rentré dans l'ordre.

Merci à toi.

Peut-être une dernière chose, une fois la gestion terminée est-il possible de déplacer automatiquement le bouton sous les dernières du tableau?
 

Dudu2

XLDnaute Barbatruc
Il faut que tu ajustes les propriétés .Top et .Left du bouton sur une cellule de ton choix.
Partant d'objets de la feuille, tu as de la chance, cela correspond.
ThisWorkbook.Worksheets(1).CommandButton1.Top = [A10].Top
ThisWorkbook.Worksheets(1).CommandButton1.Left = [A10].Left
 

Moreno076

XLDnaute Impliqué
Il faut que tu ajustes les propriétés .Top et .Left du bouton sur une cellule de ton choix.
Partant d'objets de la feuille, tu as de la chance, cela correspond.
ThisWorkbook.Worksheets(1).CommandButton1.Top = [A10].Top
ThisWorkbook.Worksheets(1).CommandButton1.Left = [A10].Left

Je vois bien top et left dnas les propriétés mais si mon tableau fait 200 lignes par exemples je voudrais qu il se mette à 202eme ligne le ,ombre de lignes n 'est pas fixe c'est là le soucis.
 

Dudu2

XLDnaute Barbatruc
Il te faut trouver la dernière ligne...
- d'une colonne de ton tableau, ci-dessous ma méthode préférée car insensible aux lignes masquées:
VB:
    Dim DernièreLigne As Long
   
    On Error Resume Next
    'Dernière ligne de la colonne 1 de la feuille 1
    DernièreLigne = ThisWorkbook.Worksheets(1).Columns(1).EntireColumn.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
    If Err.Number Then DernièreLigne = 0
    On Error GoTo 0
   
    MsgBox DernièreLigne

Ou alors tu sais que le UsedRange de la feuille est uniquement constitué de ton tableau:
Code:
    Dim DernièreLigne As Long
   
    DernièreLigne = ThisWorkbook.Worksheets(1).UsedRange.Row + ThisWorkbook.Worksheets(1).UsedRange.Rows.Count - 1

Voir les options de dernière ligne ici https://excel-malin.com/tutoriels/vba-tutoriels/vba-trouver-la-derniere-cellule-utilisee/

Puis tu places ton bouton:
Code:
    ThisWorkbook.Worksheets(1).CmdDémarrer.Top = ThisWorkbook.Worksheets(1).Cells(DernièreLigne + 1, 1).Top
    ThisWorkbook.Worksheets(1).CmdDémarrer.Left = ThisWorkbook.Worksheets(1).Cells(DernièreLigne + 1, 1).Left
 

Statistiques des forums

Discussions
314 629
Messages
2 111 349
Membres
111 110
dernier inscrit
chergui