Changement de couleur bouton Activex à la fin d'une macro

Résolu
CBRiste31 Messages postés 84 Statut Membre -  
danielc0 Messages postés 1936 Statut Membre -

Bonjour,

J'ai créé deux boutons de contrôle de formulaires Activex, chacun relié à une macro différente.

J'aimerais qu'à la fin d'exécution de la 1ère macro, le bouton qui lui est attribué devienne vert, puis de même pour le 2ème bouton à l'exécution de la seconde macro.

Ci-dessous, le fichier.

https://uploadnow.io/f/P5DkxKY

Merci d'avance

Gexelpas


Windows / Chrome 109.0.0.0

A voir également:

10 réponses

danielc0 Messages postés 1936 Statut Membre 236
 

Bonjour à tous,

Les boutons de ton classeur ne sont pas des boutons ActiveX mais des boutons de la boîte à outils "Formulaire". On ne peut pas changer la couleur de ces boutons.

Pour utiliser les contrôles ActiveX :

Pour indiquer que la macro est terminée, ajoute la ligne en fin de code :

MsgBox "fin de la macro"

Daniel 


1
CBRiste31 Messages postés 84 Statut Membre 3
 

Merci Daniel, je ne referai plus cette erreur...

0
danielc0 Messages postés 1936 Statut Membre 236
 

... Sinon, pour colorer un bouton ActiveX en gris :

    ActiveSheet.CommandButton1.BackColor = RGB(242, 242, 242)

et en vert :

ActiveSheet.CommandButton1.BackColor = RGB(102, 255, 51) 'vert

Daniel 


1
danielc0 Messages postés 1936 Statut Membre 236
 

Supprime tes deux macros et mets celles-ci dans le module de la feuille Feuil1 :

Private Sub CommandButton1_Click()
  Sheets("Feuil2").Select
  ActiveCell.FormulaR1C1 = "testun"
  Sheets("Feuil2").Range("B1").Select
  Sheets("Feuil1").Select
  CommandButton1.BackColor = RGB(102, 255, 51) 'vert
  CommandButton2.BackColor = RGB(242, 242, 242)
End Sub

Private Sub CommandButton2_Click()
    Sheets("Feuil2").Select
    Sheets("Feuil2").Range("A2").Select
    ActiveCell.FormulaR1C1 = "testdeux"
    Sheets("Feuil2").Range("A3").Select
    Sheets("Feuil1").Select
  CommandButton2.BackColor = RGB(102, 255, 51) 'vert
  CommandButton1.BackColor = RGB(242, 242, 242)
End Sub

Daniel


1
CBRiste31 Messages postés 84 Statut Membre 3
 

Bonjour Daniel,

Merci beaucoup pout ton temps et ton aide;

Je comprends mieux l'intégration d'une macro à une commande de bouton grâce à tes exemples. Merci :-)

0
Le Pingou Messages postés 12638 Statut Contributeur 1 461
 

Bonjour CBRiste31,

Ma petite contribution : https://www.swisstransfer.com/d/281e47ed-5fb3-4bc7-ba48-c679f42ad11b


1
CBRiste31 Messages postés 84 Statut Membre 3
 

Bonjour Le Pingou,

Au top, comme toujours ! :-)

Je vais l'utiliser pour d'autres macros dorénavant !

Merci bcp !

Cdlt,

Gexelpas

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
danielc0 Messages postés 1936 Statut Membre 236
 

Bonjour à tous,

Puisque, semble-t-il, tu débutes dans la programmation des command buttons, il y a une bizarrerie qu'il est important de connaître : quand tu indiques une cellule sans spécifier le nom de la feuille, VBA considère que la cellule fait partie de la feuille du bouton et non pas de la feuille active. On le voit dans la fenêtre d'exécution :

sheets("Feuil2").select


?Range("A1").Parent.name


Feuil1

Par exemple, si le bouton est sur Feuil1 et que tu veuilles écrire en A1 de Feuil2, tu dois spécifier le nom de la feuille :

    Sheets("Feuil2").Select
    Sheets("Feuil2").Range("A2").Select

Daniel

PS. Note que j'ai repris des lignes de ton code. En pratique, il vaut mieux éviter les instructions "Select".


1
NonoM45 Messages postés 961 Statut Membre
 

Bonjour,

Savez-vous que Microsoft déconseille fortement l'utilisation des ActiveX
https://www.clubic.com/actualite-562332-microsoft-enterre-activex-la-backdoor-involontaire-la-plus-officielle-d-office.html

Pourquoi ne pas utiliser une forme rectangle arrondi (pas exemple) !?
Bien plus simple à gérer et surtout moins dangereux

A+

0
CBRiste31 Messages postés 84 Statut Membre 3
 

Bonjour et merci pour cette information.

Quelle serait le code à ajouter à ma macro pour que dès la fin de son exécution, une boite de message s'affiche, indiquant qu'elle est achevée ?

Merci d'avance.

Cdlt,

Gexelpas

0
brucine Messages postés 22902 Statut Membre 3 546
 

Bonjour,

Ce ne sont pas les Active X en soi qui sont dangereux, mais leur exploitation à partir d'Internet ou d'un fichier tiers en contenant: il n'y a pas de risque sur un fichier Excel local où on a soi-même mis en place un contrôle de ce type.

Sur la dernière question, il suffit normalement d'insérer en fin de code un
MsgBox "Mon texte".

0
Le Pingou Messages postés 12638 Statut Contributeur 1 461
 

Bonjour,

Juste au passage est-ce que si Un est terminé devient vert et Deux reste gris puis si Deux est terminé devient vert et Un de vient gris....?


0
Le Pingou Messages postés 12638 Statut Contributeur 1 461
 

Bonjour danielc0,

Belle proposition et le tout sans avoir de réponse du demandeur c'est dommage..


0
danielc0 Messages postés 1936 Statut Membre 236
 

Bonjour,

Tu n'as pas dû ouvrir son classeur...

Daniel

-2
CBRiste31 Messages postés 84 Statut Membre 3
 

Bonjour Le Pingou.

Je n'avais pas accès à internet les 2 derniers jours, mais je viens de voir la proposition de Daniel (tout comme la vôtre plus haut) et je viens de le remercier. :-)

0
Le Pingou Messages postés 12638 Statut Contributeur 1 461
 

Bonjour Daniel,

Eh oui je l'ai ouvert et j'ai vu ces deux codes  qui ne peuvent pas prendre en compte les contrôles ActiveX.

Bonne suite


0