Problème avec Optionbutton (choix obligatoire)

Arnaud dit Citro

XLDnaute Junior
Bonjour à tous,

Je voudrais rendre un choix obligatoire d'Optionbutton dans un formulaire, mais je ne veux pas qu'il quitte le formulaire tant qu'il n'y a pas de réponse.

J'ai donc insérer un code qui sur le fond fonctionne, mais pas du tout sur la forme, cela me met 2 fois le message de non remplissage (même si il y a une réponse) :

VB:
Private Sub CommandButton1_Click()

' Insertion dans feuille de réponse aux devis

Frde = Sheets("Rep_Devis").Range("B65536").End(xlUp).Row + 1


    ' Insertion de la date de la réponse
        Sheets("Rep_Devis").Cells(Frde, 4) = Label5 'Date de réponse dans colonne D

    ' Insertion des réponses aux Optionbutton

        Dim Obt As Control

        For Each Obt In Frame1.Controls

            If Obt.Value = 0 Then
            MsgBox "Vous devez selectionner une réponse (Oui/Non)"
            Else
            Sheets("Rep_Devis").Cells(Frde, 5) = Obt.Caption
            End If
            'Exit Sub
        Next


        For Each Obt In Frame2.Controls

            If Obt.Value = 0 Then
            MsgBox "Vous devez selectionner une réponse (Accepté/Réporté/Refusé)"
            Else
            Sheets("Rep_Devis").Cells(Frde, 6) = Obt.Caption
            End If
            'Exit Sub
        Next


    ' Insertion du nom client
        Sheets("Rep_Devis").Cells(Frde, 2) = ComboBox1.Text 'Nom du client dans colonne B
        
    
    ' Insertion de la dete du devis
        Sheets("Rep_Devis").Cells(Frde, 3) = Label8.Caption 'date du devis dans colonne C


Unload Me

End Sub

Je joins le fichier, c'est sur l'userform4 que cela pose problème.

Si vous avez une solution à mon soucis, cela m'aiderait vraiment.

Bonne journée à tous

Arnaud
 

Pièces jointes

  • Test.xlsm
    51.6 KB · Affichages: 11

Arnaud dit Citro

XLDnaute Junior
Bonjour Pierrejean,

Un essai = une réussite, c'est parfait, je te remercie beaucoup (si je peux me permettre le tutoiement).

j'ai quelques questions pour m'aider à comprendre (je débute totalement en VBA et je ne suis pas sur de tout bien comprendre) :
- Pourquoi ajoute t'on Me. aux Optiobutton?​
- Qu'est ce que Me en codage VBA? (j'avais compris que ça correspondait au formulaire vu que quand je veux le fermer, j'écris Unload Me)​
- Pourquoi n'y a t'il qu'un seul End If dans ce code? (je pensais qu'il fallait un End If par If) :​
VB:
            If Me.OptionButton1 = 0 And Me.OptionButton2 = 0 Then
            MsgBox "Vous devez selectionner une réponse (Oui/Non)"
            Exit Sub
            Else
            For Each Obt In Frame1.Controls
               If Obt.Value Then Sheets("Rep_Devis").Cells(Frde, 5) = Obt.Caption
             Next
            End If


Une autre question (mais cela n'est pas forcément lié avec la première) : Est il possible que, quand je clique Oui sur le 1er frame, cela affiche à ce moment là le second frame (si je clique Non, cela n'affiche rien)?

Merci encore

Arnaud
 

Arnaud dit Citro

XLDnaute Junior
Oublions la dernière question... dans mon esprit je pensais que le second frame ne s'affiche qu'avec la réponse Oui.
Mais si j'avais réfléchi un petit peu, il suffit de rajouter un If et de laisser le second frame visible mais inopérant...

VB:
If OptionButton1 = True Then
                If Me.OptionButton3 = 0 And Me.OptionButton4 = 0 And Me.OptionButton5 = 0 Then
                    MsgBox "Vous devez selectionner une réponse (Accepté/Reporté/Refusé)"
                    Exit Sub
                Else
                For Each Obt In Frame2.Controls
                        If Obt.Value Then Sheets("Rep_Devis").Cells(Frde, 6) = Obt.Caption
                Next
                End If
            End If
 

Discussions similaires

Réponses
8
Affichages
641

Statistiques des forums

Discussions
312 100
Messages
2 085 294
Membres
102 854
dernier inscrit
ADRIENVR