formulation optionbuton si non cocher ouvrir une messagebox vbOKCancel

fan2foot

XLDnaute Nouveau
Bonjour;

J'ai un souci avec une formule en VBA, j'ai 1 groupement de 10 options button, chaque bouton cocher provoque une action différente, si aucun bouton est cocher une message box (vbokcancel) s'ouvre. Le problème c'est que lorsque je clic sur annuler, la procédure ne s’arrête pas et ma feuille de calcul se remplit. Moi je souhaiterais lorsque je clic sur annulé pouvoir retourner à mon userform en ayant gardé en mémoire les cases que j'avais cochées avant d’avoir cliqué sur enregistrer et que ma feuille ne se soit pas quand même rempli des information que j'ai noté.
Je pense qu'il faut d'abord mettre la condition pour ouvrir la messagebox et après mes condition pour remplir ma feuille. Le problème c'est que je ne trouve pas la bonne formulation.
voici mon code actuel.
Code:
If banco1.Value = True Then 'Si coché ...
       Sheets("score").Cells(no_ligne, 12) = Sheets("score").Cells(no_ligne, 2)
       Sheets("pronostic").Cells(no_ligne, 12) = "match 1"
       ElseIf banco2.Value = True Then 'Si coché ...
       Sheets("score").Cells(no_ligne, 12) = Sheets("score").Cells(no_ligne, 3)
       Sheets("pronostic").Cells(no_ligne, 12) = "match 2"
       ElseIf banco3.Value = True Then 'Si coché ...
       Sheets("score").Cells(no_ligne, 12) = Sheets("score").Cells(no_ligne, 4)
       Sheets("pronostic").Cells(no_ligne, 12) = "match 3"
       ElseIf banco4.Value = True Then 'Si coché ...
       Sheets("score").Cells(no_ligne, 12) = Sheets("score").Cells(no_ligne, 5)
       Sheets("pronostic").Cells(no_ligne, 12) = "match 4"
       ElseIf banco5.Value = True Then 'Si coché ...
       Sheets("score").Cells(no_ligne, 12) = Sheets("score").Cells(no_ligne, 6)
       Sheets("pronostic").Cells(no_ligne, 12) = "match 5"
       ElseIf banco6.Value = True Then 'Si coché ...
       Sheets("score").Cells(no_ligne, 12) = Sheets("score").Cells(no_ligne, 7)
       Sheets("pronostic").Cells(no_ligne, 12) = "match 6"
       ElseIf banco7.Value = True Then 'Si coché ...
       Sheets("score").Cells(no_ligne, 12) = Sheets("score").Cells(no_ligne, 8)
       Sheets("pronostic").Cells(no_ligne, 12) = "match 7"
       ElseIf banco8.Value = True Then 'Si coché ...
       Sheets("score").Cells(no_ligne, 12) = Sheets("score").Cells(no_ligne, 9)
       Sheets("pronostic").Cells(no_ligne, 12) = "match 8"
       ElseIf banco9.Value = True Then 'Si coché ...
       Sheets("score").Cells(no_ligne, 12) = Sheets("score").Cells(no_ligne, 10)
       Sheets("pronostic").Cells(no_ligne, 12) = "match 9"
       ElseIf banco10.Value = True Then 'Si coché ...
       Sheets("score").Cells(no_ligne, 12) = Sheets("score").Cells(no_ligne, 11)
       Sheets("pronostic").Cells(no_ligne, 12) = "match 10"
    Else 'Si non coché ...
        Dim Rep4 As Integer
        Rep4 = MsgBox("Valider sans utiliser le banco ?", vbOKCancel)
        If Rep4 = vbCancel Then Exit Sub
        Sheets("pronostic").Cells(no_ligne, 12) = ""
    End If
 

thebenoit59

XLDnaute Accro
Re : formulation optionbuton si non cocher ouvrir une messagebox vbOKCancel

Bonsoir fan2foot.
Sans fichier je ne peux pas tester mon hypothèse.
Mais pourquoi n'inverserais-tu pas ta condition :
Code:
If banco1.Value = False Then
Dim Rep4 As Integer
        Rep4 = MsgBox("Valider sans utiliser le banco ?", vbOKCancel)
        If Rep4 = vbCancel Then Exit Sub
        Sheets("pronostic").Cells(no_ligne, 12) = ""
Else:
       Sheets("score").Cells(no_ligne, 12) = Sheets("score").Cells(no_ligne, 2)
       Sheets("pronostic").Cells(no_ligne, 12) = "match 1"
       ElseIf banco2.Value = True Then 'Si coché ...
       Sheets("score").Cells(no_ligne, 12) = Sheets("score").Cells(no_ligne, 3)
       Sheets("pronostic").Cells(no_ligne, 12) = "match 2"
       ElseIf banco3.Value = True Then 'Si coché ...
       Sheets("score").Cells(no_ligne, 12) = Sheets("score").Cells(no_ligne, 4)
       Sheets("pronostic").Cells(no_ligne, 12) = "match 3"
       ElseIf banco4.Value = True Then 'Si coché ...
       Sheets("score").Cells(no_ligne, 12) = Sheets("score").Cells(no_ligne, 5)
       Sheets("pronostic").Cells(no_ligne, 12) = "match 4"
       ElseIf banco5.Value = True Then 'Si coché ...
       Sheets("score").Cells(no_ligne, 12) = Sheets("score").Cells(no_ligne, 6)
       Sheets("pronostic").Cells(no_ligne, 12) = "match 5"
       ElseIf banco6.Value = True Then 'Si coché ...
       Sheets("score").Cells(no_ligne, 12) = Sheets("score").Cells(no_ligne, 7)
       Sheets("pronostic").Cells(no_ligne, 12) = "match 6"
       ElseIf banco7.Value = True Then 'Si coché ...
       Sheets("score").Cells(no_ligne, 12) = Sheets("score").Cells(no_ligne, 8)
       Sheets("pronostic").Cells(no_ligne, 12) = "match 7"
       ElseIf banco8.Value = True Then 'Si coché ...
       Sheets("score").Cells(no_ligne, 12) = Sheets("score").Cells(no_ligne, 9)
       Sheets("pronostic").Cells(no_ligne, 12) = "match 8"
       ElseIf banco9.Value = True Then 'Si coché ...
       Sheets("score").Cells(no_ligne, 12) = Sheets("score").Cells(no_ligne, 10)
       Sheets("pronostic").Cells(no_ligne, 12) = "match 9"
       ElseIf banco10.Value = True Then 'Si coché ...
       Sheets("score").Cells(no_ligne, 12) = Sheets("score").Cells(no_ligne, 11)
       Sheets("pronostic").Cells(no_ligne, 12) = "match 10"       
    End If
 

fan2foot

XLDnaute Nouveau
Re : formulation optionbuton si non cocher ouvrir une messagebox vbOKCancel

bonsoir,
merci de ta réponse je ne savais pas qu'on pouvait aussi mettre des "elseIf" dans la partie else.
Merci de ton aide en mettant le code au tout début de ma commande Private Sub, j'obtient exactement l'effet escompter.
Encore merci pour ta réponse rapide.
 

Statistiques des forums

Discussions
312 024
Messages
2 084 718
Membres
102 638
dernier inscrit
TOTO33000