Résultat de 5 optionbutton d'une même frame dans une seule celulle

  • Initiateur de la discussion Initiateur de la discussion piga25
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

piga25

XLDnaute Barbatruc
Bonjour,

Est il possible de mettre le résultat de 5 optionbutton d'une même frame dans une seule celulle?

J'ai un choix de 5 possibilités sur une frame d'un Userform, et j'aimerai que le résultat soit affiché dans une seule cellule qui est située sur le n° de ligne correspondant (vlign) en colonne 49.
Je sais que cela est possible pour deux optionbutton mais pour plus je ne sait pas faire.😕

Code:
Sub Transfert(vLign As Long)
Dim i As Byte
Dim a As Byte
With ActiveSheet
    .Unprotect
    .Cells(vLign, 1) = CLng(Label2)
    .Cells(vLign, 2) = UCase(TextBox1)
    .Cells(vLign, 3) = Application.Proper(TextBox2)
    .Cells(vLign, 4) = ComboBox1
    .Cells(vLign, 5) = Format(TextBox3, "0# ###")
    .Cells(vLign, 6) = UCase(TextBox4)
    .Cells(vLign, 7) = UCase(TextBox5)
    .Cells(vLign, 8) = Format(TextBox6, "0# ## ## ## ##")
    .Cells(vLign, 9) = Format(TextBox7, "0# ## ## ## ##")
    .Cells(vLign, 10) = Format(TextBox8, "0# ## ## ## ##")
    .Cells(vLign, 11) = Format(TextBox9, "0# ## ## ## ##")
    .Cells(vLign, 12) = TextBox10
    For i = 1 To 15
        If Controls("CheckBox" & i) Then .Cells(vLign, i + 12) = 1 Else: .Cells(vLign, i + 12) = ""
    Next
    .Cells(vLign, 28) = TextBox11
    For a = 16 To 30
        If Controls("CheckBox" & a) Then .Cells(vLign, a + 13) = 1 Else: .Cells(vLign, a + 13) = ""
    Next
    .Cells(vLign, 44) = Application.Proper(TextBox13)
    .Cells(vLign, 45) = ComboBox2
    .Cells(vLign, 46) = ComboBox3
    .Cells(vLign, 47) = ComboBox4
    .Cells(vLign, 48) = TextBox14
   [COLOR=red]With .Cells(vLign, 49)[/COLOR]
[COLOR=red]       Select Case OptionButton1[/COLOR]
[COLOR=red]       Case True[/COLOR]
[COLOR=red]       .Value = "1"[/COLOR]
[COLOR=red]       Case False[/COLOR]
[COLOR=red]       If OptionButton2 Then .Value = "2"[/COLOR]
[COLOR=red]       If OptionButton3 Then .Value = "3"[/COLOR]
[COLOR=red]       If OptionButton4 Then .Value = "4"[/COLOR]
[COLOR=red]       If OptionButton5 Then .Value = "5"[/COLOR]
[COLOR=red]       End Select[/COLOR]
[COLOR=red]   End With[/COLOR]
    
    Tri
    .Protect
End With
End Sub
 
Re : Résultat de 5 optionbutton d'une même frame dans une seule celulle

Bonjour,

essaye peut être ainsi, si j'ai bien compris :

Code:
   With .Cells(1, 49)
        If OptionButton1 Then
             .Value = "1"
            ElseIf OptionButton2 Then .Value = "2"
            ElseIf OptionButton3 Then .Value = "3"
            ElseIf OptionButton4 Then .Value = "4"
            ElseIf OptionButton5 Then .Value = "5"
        End If
   End With

bon après midi
@+
 
Re : Résultat de 5 optionbutton d'une même frame dans une seule celulle

Bonjour le fil
Bonjour Pierrot93,

Merci pour la réponse, mais cela ne me conviens pas, le résultat comme tu l'indique va dans la ligne 1 colonne 49. Ce que je souhaite avoir c'est le résultat dans ma ligne choisie par "vLign".
De plus je constate que si on change d'optionbutton cela affiche toujours 1.

Ci joint le code comme tu le propose mais avec l'option "vLign" et la je n'ai plus rien qui s'affiche dans ma base.

Je pense qu'il doit manquer le signe " = " comme ceci : With .Cells(vLign, 49)= OptionButton1 Then .Value = "1" mais cela m'indique une erreur.



Code:
Sub Transfert(vLign As Long)
Dim i As Byte
Dim a As Byte
With ActiveSheet
    .Unprotect
    .Cells(vLign, 1) = CLng(Label2)
    .Cells(vLign, 2) = UCase(TextBox1)
    .Cells(vLign, 3) = Application.Proper(TextBox2)
    .Cells(vLign, 4) = ComboBox1
    .Cells(vLign, 5) = Format(TextBox3, "0# ###")
    .Cells(vLign, 6) = UCase(TextBox4)
    .Cells(vLign, 7) = UCase(TextBox5)
    .Cells(vLign, 8) = Format(TextBox6, "0# ## ## ## ##")
    .Cells(vLign, 9) = Format(TextBox7, "0# ## ## ## ##")
    .Cells(vLign, 10) = Format(TextBox8, "0# ## ## ## ##")
    .Cells(vLign, 11) = Format(TextBox9, "0# ## ## ## ##")
    .Cells(vLign, 12) = TextBox10
    For i = 1 To 15
        If Controls("CheckBox" & i) Then .Cells(vLign, i + 12) = 1 Else: .Cells(vLign, i + 12) = ""
    Next
    .Cells(vLign, 28) = TextBox11
    For a = 16 To 30
        If Controls("CheckBox" & a) Then .Cells(vLign, a + 13) = 1 Else: .Cells(vLign, a + 13) = ""
    Next
    .Cells(vLign, 44) = Application.Proper(TextBox13)
    .Cells(vLign, 45) = ComboBox2
    .Cells(vLign, 46) = ComboBox3
    .Cells(vLign, 47) = ComboBox4
    .Cells(vLign, 48) = TextBox14
   [COLOR=red]With .Cells(vLign, 49)= OptionButton1 Then .Value = "1""[/COLOR]
            ElseIf OptionButton2 Then .Value = "2"
            ElseIf OptionButton3 Then .Value = "3"
            ElseIf OptionButton4 Then .Value = "4"
            ElseIf OptionButton5 Then .Value = "5"
        End If
   End With
 
    Tri
    .Protect
End With
 
Re : Résultat de 5 optionbutton d'une même frame dans une seule celulle

Re,

non, devrait fonctionner ainsi enfin fonctionne chez moi...

Code:
    With .Cells(vLign, 49)
        If OptionButton1 Then
             .Value = "1"
            ElseIf OptionButton2 Then .Value = "2"
            ElseIf OptionButton3 Then .Value = "3"
            ElseIf OptionButton4 Then .Value = "4"
            ElseIf OptionButton5 Then .Value = "5"
        End If
   End With

sinon mets un tout petit fichier exemple sur le forum...
 
Re : Résultat de 5 optionbutton d'une même frame dans une seule celulle

Re

désolé peux pas y accéder, problème de proxy... il s'entend bien évidement que ce code doit être inséré dans un bloc "with" identifiant la feuille de destination....
 
Re : Résultat de 5 optionbutton d'une même frame dans une seule celulle

Re,

Oui je suis bien dans un bloc with qui indique la feuille active. La commande est en début de procédure et avant le End With
Je ne pense pas que je dois remettre le nom de la feuille avec le nouveau bloc With

Edit : Je dois m'absenter donc à plus tard. Merci
 
Re : Résultat de 5 optionbutton d'une même frame dans une seule celulle

Re,

le code ci-dessous, placé dans le module de l'usf, fonctionne chez moi, 5 "OptionButton" sur une "frame" dans un USF, la cellule AW5 de la feuille active est bien valorisée, attention peut être si tu as des cellules fusionnées dans ton fichier :

Code:
Dim vLign As Long
vLign = 5
With ActiveSheet
   With .Cells(vLign, 49)
        If OptionButton1 Then
             .Value = "1"
            ElseIf OptionButton2 Then .Value = "2"
            ElseIf OptionButton3 Then .Value = "3"
            ElseIf OptionButton4 Then .Value = "4"
            ElseIf OptionButton5 Then .Value = "5"
        End If
   End With
End With

l
 
Re : Résultat de 5 optionbutton d'une même frame dans une seule celulle

Re,

Ok j'ai trouvé mon erreur, je n'avais pas bien numéroté mes OptionButton. Aucun problème avec ton code. Merci.

Néanmoins, maintenant lorsque j'effectue ma recherche avec l'Userform, cela m'indique toujours l'OptionButton n°12 de coché. J'aimerai avoir le bon OptionButton de coché.

Ci joint le code que j'ai:

Code:
Sub Inictl(ByVal nLign As Long, ByVal WS As Worksheet, ByVal Numero As Long)
Dim i As Byte
Dim a As Byte
With WS
    Label2 = CStr(Numero)
    TextBox1 = .Cells(nLign, 2)
    TextBox2 = .Cells(nLign, 3)
    ComboBox1 = .Cells(nLign, 4)
    TextBox3 = .Cells(nLign, 5)
    TextBox4 = .Cells(nLign, 6)
    TextBox5 = .Cells(nLign, 7)
    TextBox6 = .Cells(nLign, 8)
    TextBox7 = .Cells(nLign, 9)
    TextBox8 = .Cells(nLign, 10)
    TextBox9 = .Cells(nLign, 11)
    TextBox10 = .Cells(nLign, 12)
    For i = 1 To 15
        If .Cells(nLign, i + 12) = 1 Then Controls("CheckBox" & i) = True Else: Controls("CheckBox" & i) = False
    Next
    TextBox11 = .Cells(nLign, 28)
    For a = 16 To 30
        If .Cells(nLign, a + 13) = 1 Then Controls("CheckBox" & a) = True Else: Controls("CheckBox" & i) = False
    Next
    TextBox13 = .Cells(nLign, 44)
    ComboBox2 = .Cells(nLign, 45)
    ComboBox3 = .Cells(nLign, 46)
    ComboBox4 = .Cells(nLign, 47)
    TextBox14 = .Cells(nLign, 48)
    [COLOR=red]OptionButton8 = .Cells(nLign, 49)[/COLOR]
[COLOR=red]   OptionButton9 = .Cells(nLign, 49)[/COLOR]
[COLOR=red]   OptionButton10 = .Cells(nLign, 49)[/COLOR]
[COLOR=red]   OptionButton11 = .Cells(nLign, 49)[/COLOR]
[COLOR=red]   OptionButton12 = .Cells(nLign, 49)[/COLOR]
    
End With
End Sub
 
Re : Résultat de 5 optionbutton d'une même frame dans une seule celulle

Re

normal, les "OptionButton" s'excluent l'un l'autre en d'autres termes, tu ne peux en avoir qu'un seul de cocher dans un même conteneur (frame, usf, etc..), comme à priori c'est le 12 qui reçoit la dernière valeur, pour moi ceci expliquerait cela....

Code:
    OptionButton8 = .Cells(nLign, 49)
   OptionButton9 = .Cells(nLign, 49)
   OptionButton10 = .Cells(nLign, 49)
   OptionButton11 = .Cells(nLign, 49)
   OptionButton12 = .Cells(nLign, 49)

bonne soirée
@+
 
Re : Résultat de 5 optionbutton d'une même frame dans une seule celulle

Re,
Donc si je comprends bien, le résultat de 5 optionButtons peut aller dans une cellule unique mais la valeur d'une cellule ne peut valider un OptionButton parmis d'autre dans une même frame.
Dommage😡😡

Edit : Si cela fonctionne dans un sens cela doit bien être possible dans l'autre !!!!!
 
Dernière édition:
Re : Résultat de 5 optionbutton d'une même frame dans une seule celulle

Bonsoir le fil
Pierrot93 et Le Requin

Merci Pierrot pour ton code, il fonctionne parfaitement et est très facile à adapter.😀

Merci le Requin, comme toujours tu as de très bonne solution. Ton code fonctionne parfaitement et est très facile à adapter.😀

Encore merci à vous deux et à tous ces très bon bénévoles avec qui nous pouvons avancer dans la programation VBA.
 
Re : Résultat de 5 optionbutton d'une même frame dans une seule celulle

Bonjour,

Aarf.. rien compris moi... cc, tu fais une boucle de 5 à 5, autant renseigner directement la valeur dans la cellule... enfin quelque chose doit m'échapper...

bonne journée
@+
 
Re : Résultat de 5 optionbutton d'une même frame dans une seule celulle

Bonjour,

Tant qu'il y a des chiffres de 1 à 5 cela fonctionne mais lorsque c'est du texte ou d'autres chiffres là problème😕

Le code suivant met bien les bonnes valeur, mais a l'inverse lorsque l'on ouvre Userforme cela met erreur.

Code:
Private Sub CommandButton1_Click()
 
    vLign = 5
    With ActiveSheet
        With .Cells(vLign, 49)
            If OptionButton1 Then
                .Value = "NOIR"
            ElseIf OptionButton2 Then .Value = "VERT"
            ElseIf OptionButton3 Then .Value = "BLEU"
            ElseIf OptionButton4 Then .Value = "MAUVE"
            ElseIf OptionButton5 Then .Value = "ROUGE"
            End If
        End With
    End With
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
45
Réponses
3
Affichages
216
Réponses
3
Affichages
569
Réponses
2
Affichages
371
Réponses
10
Affichages
369
Réponses
0
Affichages
367
Retour