Changer le nom d'un CommandButton

Bonjour,

Je lance un UserForm avec des Controles Bouton Option sur un UserForm

Quand je lance ma macro je récupère sur ces controles Bouton Option les coordonnées d'une cellule et mon CommandButton a la valeur "Valider mon choix".

Je souhaiterai, si c'est possible, que la valeur du bouton "Confirmer ce choix" et que si je sélectionne d'autres Controles Bouton Option la valeur du bouton devienne "Valider ce choix"

Bonjour,

tu te comprends du premier coup quand tu te relis ?

Il a fallu que je relise un paquet de fois avant moi...

Il faut changer la propriété Caption de ton bouton sur les événements click des optionbuttons.

Tu sais que tu as un contrôle RefEdit pour récupérer la référence d'une sélection faite à la souris ?

Clic-droit sur la boite à outils pour l'ajouter.

eric

Bonjour et merci de la réponse,

D'abord si je poste ici c'est que je ne suis pas un pro de VBA mais un novice

Ensuite, quand je me relis je comprends très bien ce que je souhaite trouver comme solution et si c'est possible !!!

Je répète, étant novice je ne connais pas tout et surtout RefEdit !!!!

Comme je m'explique mal, j'ai essayé de faire une capture d'écran (voir ci-dessous) du fichier avec l'UserForm et j'ai mis des annotations.

Si je ne change pas la ligne ou la colonne en sélectionnant l'UserForm, je souhaite que le bouton s'appelle "Confirmer le choix"

Si je change la ligne ou la colonne avec sélection dans l'UserForm, je souhaite que le bouton s'appelle "Valider le choix"

Peut-être que ça sera plus compréhensible !!!!

annotation 2020 04 01 171844

Je n'ai pas vraiment repris ce que tu avais fait,. J'ai plus fait à ma sauce, selon ma vision.

Regarde si ça te va.

eric

Bonjour et merci de la réponse.

C'est bien ce que je souhaitais.

Par contre, l'action sur le CommandButton n'agissait pas.

J'ai réussi à ce qu'il soit opérationnel en enlevant les " ' " et supprimant certaines lignes de la "Sub CdeBouton1_Click()" :

Private Sub CdeBouton1_Click() Range("B17:F21").ClearContents cellApres.Value = "Choix !" Unload Me End Sub

Je ne comprends pas tous les codes dans Sub "activer()" et"UserForm_Activate()":

Les instructions suivantes en rouge :

Set

CdeBouton1.Enabled

Range("B17:F21").Find("Choix !", , xlValues, xlWhole)

If Not cellAvant Is Nothing Then

De plus je ne savais pas que l'on pouvait utiliser "Not" et "Nothing" et dans quels conditions

J'essaie de comprendre toutes les lignes pour pouvoir les utiliser avec compréhension

Set est obligatoire pour initialiser un objet.

.Enabled : propriété qui actif/grise un contrôle

.Find("Choix !", , xlValues, xlWhole) : recherche la chaine dans la plage fournie, dans la valeur (en réalité dans la propriété .Text) et complète. On récupére un objet Range (la cellule trouvée)

Ca évite de boucler sur les cellules qui prend beaucoup de temps

If Not cellAvant Is Nothing Then : un objet vide est Nothing, littéralement : si cellAvant n'est pas vide alors... (donc si la chaine a été trouvée)

Sers-toi de F1 sans modération sur les méthodes, propriétés inconnues. Jusqu'en bas de l'aide, c'est là où on trouve les particularités intéressantes en cas de pb

eric

Merci de ces réponse.

J'ai du mal à comprendre le fonctionnement des 2 Sub activer()" et"UserForm_Activate() et laquelle appelle l'autre !!!

Ce n'est pas évident de comprendre ligne à ligne

Aucune n'appelle qui que ce soit.

UserForm_Activate sert seulement à activer les optionbuttons si "Choix !" est trouvé

Activer est appelé par les optionbuttons pour mettre à jour le caption du bouton comme demandé.

D'ailleurs je viens de m'apercevoir qu'il faut que tu ajoutes :

CdeBouton1.Enabled = True

sous If Not cellAvant Is Nothing And Not cellApres Is Nothing Then de activer()

Heu non.

remplacer

If lig > 0 And col > 0 Then Set cellApres = Cells(lig, col)

par :

If lig > 0 And col > 0 Then Set cellApres = Cells(lig, col): CdeBouton1.Enabled = True

Qu'il devienne actif si Choix n'a pas été trouvé mais que ligne et colonne ont été choisis.

eric

Bonsoir et merci de la réponse

Rectifications faites

Je vais essayer de décrypter toutes les lignes

Encore merci

Rechercher des sujets similaires à "changer nom commandbutton"