PB sur modif propriété.Backcolor par macro

D

DAVIDRUN

Guest
Bonjour et bonne année à toutes et à tous,

Quelqu'un saurait-il comment changer définitivement la propriété d'un
bouton (Backcolor sur cet exemple), tout cela par macro?

Voici mon code :

Sub CommandButton20_Click()
If CommandButton20.BackColor = &H8000000F Then
CommandButton20.BackColor = &H80FF&
UserForm3.CommandButton20.BackColor = &H80FF&
Else
CommandButton20.BackColor = &H8000000F
UserForm3.CommandButton20.BackColor = &H8000000F
End If
UserForm3.Show
End Sub

Ici la propriété .Backcolor est changée sur l'userform du CommandButton20
mais également sur le CommandButton20 de l'Userform3.
En temps réel celà fonctionne, cependant lorsque je quitte, aucuns
changements n'est fait sur la couleur du bouton...

Merci d'avance pour votre aide

à +
 
J

JPM

Guest
Salut David

Je pense que tu devras mettre la bonne couleur à la fermeture de l'userform

Private Sub UserForm_Terminate()
CommandButton20.BackColor = &H8000000F
End Sub

Si j'ai bien compris la question ?????

A+ JPM
 
Y

yannfran

Guest
Bonjour et bonne année également,

Pourquoi ne pas placer le code lors des activations, que ce soit de feuille ou de UserForm, au lieu de lors de l'action du bouton?

Dans l'activation de feuille cela deviendrait:

Private Sub Worksheet_Activate()
If ActiveSheet.CommandButton20.BackColor = &H8000000F Then
ActiveSheet.CommandButton20.BackColor = &H80FF&
Else
ActiveSheet.CommandButton20.BackColor = &H8000000F
End If
UserForm3.Show
End Sub

Dans l'activation de la UserForm:
Private Sub UserForm_Activate()
If ActiveSheet.CommandButton20.BackColor = &H8000000F Then
CommandButton20.BackColor = &H80FF&
Else
CommandButton20.BackColor = &H8000000F
End If
End Sub

Je suppose que tu as un bouton qui s'appelle CommandButton20 dans ta feuille et un autre bouton qui s'appelle également CommandButton20 dans ta UserForm.

Je n'ai pas testé mais ai déjà utilisé ce type de code pour différents paramètres de boutons.

Bon courage à toi.

Yannick
 
D

DAVIDRUN

Guest
Bonsoir à tous,

Merci de vous être penché sur mon problème; mais je doit preciser
cependant qu'il y a un bouton (CommandButton20) sur 2 UserForm
différentes.
Par ailleurs, le changement de couleur doit impérativement se faire
en cliquant le 1er CommandButton...
Je ne peux pas sortir de ce schéma.

En pratique, ce que je souhaite obtenir :

En cliquant un CommandButton présent sur UserForm1 (pour l'exemple)
il change lui-même de couleur mais change la couleur d'un autre
CommanButton présent lui sur UserForm2.
Jusque là, pas de soucis, sauf que si je ferme mon UserForm pour sortir
la couleur des 2 CommandButtons n'aura pas changée lors d'une prochaîne
ouverture du UserForm.

Comment alors enregistrer la modification de manière définitive?
Je m'emploi à chercher la solution, je ne serai pas surpris
qu'il s'agisse de quelque chose de simple à réaliser...

à +
 
M

michel

Guest
bonjour David , Yannfran et JPM

la procedure ci dessous permet de modifier les propriétés d'un CommandButton , dans un userform .


ThisWorkbook.VBProject.VBComponents("UserForm3"). _
Designer.Controls("CommandButton20").BackColor = &H80FF&


Pour la modification du UserForm3 il n'y aura pas de soucis , par contre , je n'ai pas trouvé de solution pour que cela fonctionne dans le CommandButton d'un UserForm en cours d'affichage . Il faudra donc que tu adaptes tout ça pour ton projet

bonne soirée
michel
lapin4.gif
 

Discussions similaires

Statistiques des forums

Discussions
313 101
Messages
2 095 286
Membres
106 243
dernier inscrit
Zamot