OVH Cloud OVH Cloud

Mettre une valeur dans un userform par un clic sur un commandbuttom

3 réponses
Avatar
crole
Bonjour le groupe,

Je souhaiterais savoir si par l'action d'un bouton de commande, je peux
donner une valeur dans un textbox

exemple

J'ai dans une feuille plusieurs bouton commande pour des ann=E9es
diff=E9rentes 1988,1998 et 2004
J'aimerais si je clique sur le bouton 1988, apparaisse dans mon users
form et dans une textBox
la valeur 1988

Merci pour vos r=E9ponses
Cordialement
Crole

3 réponses

Avatar
Youky
UserForm1.TextBox1.Text88
UserForm1.Show
Youky

"crole" a écrit dans le message de news:

Bonjour le groupe,

Je souhaiterais savoir si par l'action d'un bouton de commande, je peux
donner une valeur dans un textbox

exemple

J'ai dans une feuille plusieurs bouton commande pour des années
différentes 1988,1998 et 2004
J'aimerais si je clique sur le bouton 1988, apparaisse dans mon users
form et dans une textBox
la valeur 1988

Merci pour vos réponses
Cordialement
Crole
Avatar
lSteph
Bonjour,

Dans le code de la feuill:

Private Sub CommandButton1_click()
With UserForm1
.TextBox1 = CommandButton1.Caption
.Show
End With
End Sub

Sinon pour beaucoup de boutons faut un module de classe
qui renvoie la commande pour l'ensemble des boutons avec son caption.

Voir exemples sur ce forum (via google) et sur excelabo.net

En voici un d'Alain Cros avec renvoi dans une cellule (mais tu peux
adapter):
'''''''''''''''''''''''

Tu dois créer un module de classe que tu vas appeler ClassBT.
Dans le module de classe, le code suivant :

Public WithEvents MonBt As MSForms.CommandButton
Private Sub MonBt_Click()
ActiveCell.Value = ActiveCell.Value + MonBt.Caption
End Sub

Si tes boutons (barre d'outils commande) sont sur une feuille de
calcul,
dans le module de la feuille, le code suivant :

Private MesBt() As New ClassBT
Private Sub Worksheet_Activate()
Dim elt As OLEObject, I&
For Each elt In OLEObjects
If TypeName(elt.Object) = "CommandButton" Then
ReDim Preserve MesBt(0 To I)
Set MesBt(I).MonBt = elt.Object
I = I + 1
End If
Next elt
End Sub
Private Sub Worksheet_Deactivate()
Dim I&
For I = 0& To UBound(MesBt)
Set MesBt(I) = Nothing
Next I
End Sub

Si tes boutons sont sur un UserForm,
dans le module de l'UF, le code suivant :

Private MesBt() As New ClassBT
Private Sub UserForm_Initialize()
Dim elt As Control, I&
For Each elt In Me.Controls
If TypeName(elt) = "CommandButton" Then
ReDim Preserve MesBt(0 To I)
Set MesBt(I).MonBt = elt
I = I + 1
End If
Next elt
End Sub
Private Sub UserForm_Terminate()
Dim I&
For I = 0& To UBound(MesBt)
Set MesBt(I) = Nothing
Next I
End Sub

'd'Alain Cros que je remercie encore

'Cordialement

lSteph

crole a formulé la demande :
Bonjour le groupe,

Je souhaiterais savoir si par l'action d'un bouton de commande, je peux
donner une valeur dans un textbox

exemple

J'ai dans une feuille plusieurs bouton commande pour des années
différentes 1988,1998 et 2004
J'aimerais si je clique sur le bouton 1988, apparaisse dans mon users
form et dans une textBox
la valeur 1988

Merci pour vos réponses
Cordialement
Crole


--
- -

lSteph

Avatar
crole
Merci à tous pour la solution

Amicalement
Crole