Changement de couleur bouton Activex à la fin d'une macro
Résoludanielc0 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
- Changement de couleur bouton Activex à la fin d'une macro
- Changer de dns - Guide
- A quoi servent les boutons de couleur sur une telecommande - Guide
- La boite a couleur - Télécharger - Divers Photo & Graphisme
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Changer la couleur de la barre des taches - Guide
10 réponses
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
... 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
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
Bonjour CBRiste31,
Ma petite contribution : https://www.swisstransfer.com/d/281e47ed-5fb3-4bc7-ba48-c679f42ad11b
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionBonjour à 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".
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+
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
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".
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....?
Merci Daniel, je ne referai plus cette erreur...