Test sur OptionButton

Bonjour à toutes et tous

En cours de développement d'un outil pour mon asso,

pour la saisie des adhérents j'utilise un UserForm avec 4 OptionButton (2 x 2) pour valider des choix d'orthographe des noms et prénoms quand la saisie et un historique, s'il existe, sont différents. (récupération de données sans avoir à les saisir)

Le UserForm n'apparaît que s'il y une différence orthographique.

image image

Si la validation du choix est faite sans avoir choisi une des orthographes via les OptionButton (2 pour les noms et 2 pour les prénoms)

Les cases d'orthographe différentes se colorent en rose et demande de faire un choix.

Ça fonctionne si je choisi "sans oublier" de valider entre les orthographes différentes

Là où ça "coince" s'est que si je valide le choix sans avoir choisi une des option en rose, L'outil par en boucle => obligé de fermer Excel

Ci-dessous le code

Les 2 "GoTo n" sont, à la base, pour récupérer l'oubli de validation...

Mais ça bugue avec ou sans le MsgBox de rappel, impossible d'avoir une pose pour la validation, les OptionButton ne sont pas accessibles...

Sub Item_Open()
    Set OptionButton1 = Item.GetInspector.ModifiedFormPages("Orthographe").Controls("OptionButton1")
    Set OptionButton3 = Item.GetInspector.ModifiedFormPages("Orthographe").Controls("OptionButton3")
    Set OptionButton2 = Item.GetInspector.ModifiedFormPages("Orthographe").Controls("OptionButton2")
    Set OptionButton4 = Item.GetInspector.ModifiedFormPages("Orthographe").Controls("OptionButton4")
    OptionButton1.Caption = "Nom Saisi"
    OptionButton3.Caption = "Nom Enregistré"
    OptionButton1.GroupName = "Nom"
    OptionButton3.GroupName = "Nom"
    OptionButton2.Caption = "Prénom Saisi"
    OptionButton4.Caption = "Prénom Enregistré"
    OptionButton2.GroupName = "Prénom"
    OptionButton4.GroupName = "Prénom"
End Sub
Private Sub UserForm_Initialize()
    Me.Label1.Caption = "Choix de l'Orthographe " & _
    vbCrLf & Sheets("Support-Macros").Range("A6").Value & _
     vbCrLf & vbCrLf & "Valider le choix des Nom et Prénom"
    Sheets("Support-Macros").Select
    If Sheets("Support-Macros").Range("B6").Value = 1 Then
        Me.TextBox1.Value = Sheets("Support-Macros").Range("G3").Value
        Me.TextBox2.Value = Sheets("Support-Macros").Range("G4").Value
        Me.TextBox3.Value = Sheets("Support-Macros").Range("I3").Value
        Me.TextBox4.Value = Sheets("Support-Macros").Range("I4").Value
    End If
    If Sheets("Support-Macros").Range("B6").Value = 2 Then
        Me.TextBox1.Value = Sheets("Support-Macros").Range("M2").Value
        Me.TextBox2.Value = Sheets("Support-Macros").Range("N2").Value
        Me.TextBox3.Value = Sheets("Support-Macros").Range("P2").Value
        Me.TextBox4.Value = Sheets("Support-Macros").Range("Q2").Value
    End If
End Sub
Private Sub ValidationChoix_Click()
' --- Choix de l'orthoraphe à conserver ----
    Application.ScreenUpdating = False      '----> Figer l'écran
' --- Alerte choix orthographe non fait ----
1   If Me.OptionButton1.Value = Me.OptionButton3.Value And Me.TextBox1.Value <> Me.TextBox3.Value Then
        Me.TextBox1.BackColor = &HFFC0FF
        Me.TextBox3.BackColor = &HFFC0FF
    Else
        Me.TextBox1.BackColor = &H80000005
        Me.TextBox3.BackColor = &H80000005
    End If
    If Me.OptionButton2.Value = Me.OptionButton4.Value And Me.TextBox2.Value <> Me.TextBox4.Value Then
        Me.TextBox2.BackColor = &HFFC0FF
        Me.TextBox4.BackColor = &HFFC0FF
    Else
        Me.TextBox2.BackColor = &H80000005
        Me.TextBox4.BackColor = &H80000005
    End If
' - Choix Nom --
    If Me.OptionButton1.Value = Me.OptionButton3.Value Then
        Msg = "Veuillez choisir l'orthographe du NOM (rosés)"
        Style = vbYesNo
        Title = "Validation du Nom"
        Response = MsgBox(Msg, Style, Title)
        If Response = vbYes Then                                      ' Choix => OUI.
            Sheets("Support-Macros").Range("A20").Value = Sheets("Support-Macros").Range("A22").Value
            SaisieAdhérent.Show
            GoTo 1
        Else
            Me.TextBox1.BackColor = &H80000005
            Me.TextBox3.BackColor = &H80000005
            Me.TextBox2.BackColor = &H80000005
            Me.TextBox4.BackColor = &H80000005
            Call Fin
        End If
    End If
' - Choix Prénom --
    If Me.OptionButton2.Value = Me.OptionButton4.Value Then
        Msg = "Veuillez choisir l'orthographe du PRENOM (rosés) "
        Style = vbYesNo
        Title = "Validation du Nom"
        Response = MsgBox(Msg, Style, Title)
        If Response = vbYes Then                                      ' Choix => OUI.
            Sheets("Support-Macros").Range("A20").Value = Sheets("Support-Macros").Range("A23").Value
            SaisieAdhérent.Show
            GoTo 1
        Else
            Call Fin
        End If
'    End If
' - Choix/validation de l'orthographe des Nom et Prénom
    If Me.OptionButton1.Value = True Then
    Nouvel_Adhérent.TextBox1.Value = Me.TextBox1.Value
    Else
    Nouvel_Adhérent.TextBox1.Value = Me.TextBox3.Value
    End If
    If Me.OptionButton2.Value = True Then
    Nouvel_Adhérent.TextBox2.Value = Me.TextBox2.Value
    Else
    Nouvel_Adhérent.TextBox2.Value = Me.TextBox4.Value
    End If

J'utilise le même principe avec un autre UserForm (saisie des data de l'adhérent) et je n'ai pas ce problème...

Merci de votre aide

Cdlt

Nano

Merci Gérard de votre retour mais,
le fichier complet pèse "un peu lourd" => 18MO (code + data)

Cdlt

Nano

Bonjour Nano33320,

Difficile de te venir en aide efficacement.

Un simple conseil à la vue de ton code : evites l’utilisarion des ‘goto’.

Rechercher des sujets similaires à "test optionbutton"