XL 2021 UserForm & OptionButton

nano33320

XLDnaute Junior
Bonjour à toutes et tous

Dans le cadre du développement d'un outil de gestion des adhérents d'une association, je butte sur le problème suivant "Objet ou variable de bloc With non défini"...
Ayant déjà atteint mon niveau d'incompétence😵‍💫, j'apprécierais beaucoup votre aide 😊.
Le contexte,
1°) un UserForm pour la saisie des nouveaux adhérents de l'année (Ok pour lui)
1710265250734.png

2°) si la saisie est mal orthographiée par rapport à des coordonnées déjà enregistrées (par exemple année antérieure)
un UserForm qui après recherche et comparaison orthographique affiche le résultat
1710265459721.png

les 2 blocs de "Frame" [Nom] et [Prénom] permettent le choix à retenir pour la suite.
Ce qui bloque... ci-dessous le code :
1710265620520.png

Il s'avère que je n'ai pas de lien entre les 2 UserForms :
càd les TextBox dans l'UserForm "Choix d'Orthographe" et les TextBox dans l'UserForm "Nouvel_Adhérent".
=> Je ne fait pas le lien entre les TextbBox de "Nouvel_Adhérent" et ceux dans "Choix d'Orthographe"...

Merci de votre aide
Cdlt
Nano
 

nano33320

XLDnaute Junior
Bonsoir Jean Marie
si c'est ta question, je pense que les 2 userform ne s'affichent en même temps (peut-être faudrait-il). Comme je suis en développement sur cette partie, je n'ai pas testé ce point.

Pour le code/fichier, je veux bien mais c'est un peu lourd (3,5 MO) même en enlevant la base de donnée il doit rester plus de 2,5MO... (10 UserForm, 9 modules et 27 feuilles)...
Je ne suis pas sûr que ça passe 😣
C'est la première fois que je suis amené à une interaction directe entre 2 UserForm...

Le code de l'UserForm "Choix d'Orthographe" (non finalisé) il y a encore beaucoup de boulot (optimisation et fiabilisation) :

VB:
Option Explicit
Dim Ctrl As Control
Dim i As Integer
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 & vbCrLf & Sheets("Support-Macros").Range("A6").Value & _
     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
' --- Choix de l'orthographe à conserver ----
    If Me.OptionButton1.Value = True Then Nouvel_Adhérent.TextBox1.Value = Me.TextBox1.Value
    If Me.OptionButton2.Value = True Then Nouvel_Adhérent.TextBox2.Value = Me.TextBox2.Value
    If Me.OptionButton3.Value = True Then Nouvel_Adhérent.TextBox3.Value = Me.TextBox3.Value
    If Me.OptionButton4.Value = True Then Nouvel_Adhérent.TextBox4.Value = Me.TextBox4.Value
End Sub
Private Sub ValidationChoix_Click()
' --- Alerte choix orthographe non fait ----
    If Me.TextBox1.Value <> Me.TextBox3.Value Then
    i = 0
    For Each Ctrl In Nom.Controls
        If Ctrl.Object.Value Then i = i + 1
    Next Ctrl
    If i = 0 Then MsgBox "veuillez cocher un bouton"
    Call UserForm_Initialize
    End If
    If Me.TextBox2.Value <> Me.TextBox4.Value Then
    i = 0
    For Each Ctrl In Prénom.Controls
        If Ctrl.Object.Value Then i = i + 1
    Next Ctrl
    If i = 0 Then MsgBox "veuillez choisir une (les) option"
' ----- en cours de développement --------
    Call UserForm_Initialize
    End If

Pour le code de l'UserForm " Nouvel_Adhérent" [456 lignes] j'ai peur que ce soit indigeste pour le site...

Cdlt
Nano
 

Statistiques des forums

Discussions
315 093
Messages
2 116 137
Membres
112 668
dernier inscrit
foyoman