OVH Cloud OVH Cloud

Simplification et amélioration d'un userform

4 réponses
Avatar
Florian
Bonsoir mon userform fonctionne, mais j'ai l'impression que je pourrais
simplifier
et déclarer les variables, mais là je sèche.
Merci à tous

Private Sub CommandButton1_Click()
If OptionButton1 Then
ActiveCell = "Mademoiselle"
End If
If OptionButton2 Then
ActiveCell = "Madame"
End If
If OptionButton3 Then
ActiveCell = "Monsieur"
End If
If OptionButton1 = False And OptionButton2 = False And OptionButton3 =
False Then
MsgBox "Erreur, vous devez saisir la civilité": Exit Sub
Else: Unload frm_civilité
End If
End Sub

4 réponses

Avatar
Jean-Claude
Bonjour,
J'utiliserais plutôt la propriété Tag des objets d'un userform

Ici la propriété Tag de OptionButton (Cela pourrait être d'un éventuel Frame
englobant vos OptionButton)

Private Sub OptionButton1_Click()
CommandButton1.Tag="Mademoiselle"
End Sub
Private Sub OptionButton2_Click()
CommandButton1.Tag="Madame"
End Sub
Private Sub OptionButton3_Click()
CommandButton1.Tag="Monsieur"
End Sub

Private Sub CommandButton1_Click()
If CommandButton1.Tag= "Erreur, vous devez saisir la civilité" Then
MsgBox "Erreur, vous devez saisir la civilité": Exit Sub
ActiveCell = CommandButton1.Tag
Unload frm_civilité
End Sub

Private Sub UserForm_Initialize()
CommandButton1.Tag= "Erreur, vous devez saisir la civilité"
End Sub

Non testé mais en gros je pense que ça devrait marcher
A+
Jc
Avatar
garnote
Salut Florian,

Autre façon de faire qui, je l'espère, te donnera
ce que tu veux obtenir.

Private Sub CommandButton1_Click()
If OptionButton1 + OptionButton2 + OptionButton3 = 0 Then
MsgBox "Erreur, vous devez saisir la civilité": Exit Sub
Else: Unload frm_civilité
End If
End Sub

Private Sub OptionButton1_Click()
ActiveCell = "Mademoiselle"
End Sub

Private Sub OptionButton2_Click()
ActiveCell = "Madame"
End Sub

Private Sub OptionButton3_Click()
ActiveCell = "Monsieur"
End Sub

Serge



"Florian" a écrit dans le message de news:
#
Bonsoir mon userform fonctionne, mais j'ai l'impression que je pourrais
simplifier
et déclarer les variables, mais là je sèche.
Merci à tous

Private Sub CommandButton1_Click()
If OptionButton1 Then
ActiveCell = "Mademoiselle"
End If
If OptionButton2 Then
ActiveCell = "Madame"
End If
If OptionButton3 Then
ActiveCell = "Monsieur"
End If
If OptionButton1 = False And OptionButton2 = False And OptionButton3 > False Then
MsgBox "Erreur, vous devez saisir la civilité": Exit Sub
Else: Unload frm_civilité
End If
End Sub




Avatar
Florian
Merci beaucoup Serge
Florian

"garnote" a écrit dans le message de
news:9lmyc.8500$
Salut Florian,

Autre façon de faire qui, je l'espère, te donnera
ce que tu veux obtenir.

Private Sub CommandButton1_Click()
If OptionButton1 + OptionButton2 + OptionButton3 = 0 Then
MsgBox "Erreur, vous devez saisir la civilité": Exit Sub
Else: Unload frm_civilité
End If
End Sub

Private Sub OptionButton1_Click()
ActiveCell = "Mademoiselle"
End Sub

Private Sub OptionButton2_Click()
ActiveCell = "Madame"
End Sub

Private Sub OptionButton3_Click()
ActiveCell = "Monsieur"
End Sub

Serge



"Florian" a écrit dans le message de news:
#
Bonsoir mon userform fonctionne, mais j'ai l'impression que je pourrais
simplifier
et déclarer les variables, mais là je sèche.
Merci à tous

Private Sub CommandButton1_Click()
If OptionButton1 Then
ActiveCell = "Mademoiselle"
End If
If OptionButton2 Then
ActiveCell = "Madame"
End If
If OptionButton3 Then
ActiveCell = "Monsieur"
End If
If OptionButton1 = False And OptionButton2 = False And OptionButton3 > > False Then
MsgBox "Erreur, vous devez saisir la civilité": Exit Sub
Else: Unload frm_civilité
End If
End Sub








Avatar
Pascal Engelmajer
Salut,
si tu veux une simplification de masse jette un coup d'oil sur la variante
module de classe de cet exemple... en adaptant à des boutons d'option et à
activecell : http://www.ilyapa.net/baseExcel/chkboxTexte.xls
voir également dant le même esprit :
http://www.ilyapa.net/baseExcel/txtBoxSomme.xls
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
http://www.ilyapa.net/baseExcel
"Florian" a écrit dans le message de news:
uJbVex#
Merci beaucoup Serge
Florian

"garnote" a écrit dans le message de
news:9lmyc.8500$
Salut Florian,

Autre façon de faire qui, je l'espère, te donnera
ce que tu veux obtenir.

Private Sub CommandButton1_Click()
If OptionButton1 + OptionButton2 + OptionButton3 = 0 Then
MsgBox "Erreur, vous devez saisir la civilité": Exit Sub
Else: Unload frm_civilité
End If
End Sub

Private Sub OptionButton1_Click()
ActiveCell = "Mademoiselle"
End Sub

Private Sub OptionButton2_Click()
ActiveCell = "Madame"
End Sub

Private Sub OptionButton3_Click()
ActiveCell = "Monsieur"
End Sub

Serge



"Florian" a écrit dans le message de news:
#
Bonsoir mon userform fonctionne, mais j'ai l'impression que je
pourrais



simplifier
et déclarer les variables, mais là je sèche.
Merci à tous

Private Sub CommandButton1_Click()
If OptionButton1 Then
ActiveCell = "Mademoiselle"
End If
If OptionButton2 Then
ActiveCell = "Madame"
End If
If OptionButton3 Then
ActiveCell = "Monsieur"
End If
If OptionButton1 = False And OptionButton2 = False And OptionButton3
False Then
MsgBox "Erreur, vous devez saisir la civilité": Exit Sub
Else: Unload frm_civilité
End If
End Sub