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.
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’.