Nom de l'UserForm dans une variable ?

Bonjour à tous,

Je vous contact car aujourd'hui j'aurai besoin de faire une manip un peux spécifique qui me pose problème.

Contexte

J'ai deux UserForm : BASIC_Fr et VERIFICATION_FR

Ces deux UserForms contiennent les même champs, cependant ne sont pas apellés pour la même raison.

Dans les deux cas, avant la validation de l'UserForm, des vérifications sont effectuées (champs non vide, ...)

Ce que je veux faire

Je souhaiterai dans une variable, présente dans un module, déclarer le nom de l'UserForm utilisé.

Le principe serait le suivant :

En temps normal :

Sub code()
        If BASIC_Fr.Menu_pays.Value = "" Then
            BASIC_Fr.Menu_pays.BackColor = &HC0C0FF
        Else: BASIC_Fr.Menu_pays.BackColor = &HFFFFFF
        End If
End Sub

Comme vous pouvez le voir, ce code est valable uniquement pour la feuille BASIC_Fr. Je souhaiterai donc par exemple déclarer dans une variable, String ou autre, le nom de l'UserForm tel que :

Sub code()
        Dim UserForm as variant

        'Ici ma condition que je créerai aprés pour donner a la variable UserForm le nom de la feuille voulu

        If UserForm .Menu_pays.Value = "" Then
            UserForm .Menu_pays.BackColor = &HC0C0FF
        Else: UserForm .Menu_pays.BackColor = &HFFFFFF
        End If
End Sub

Cependant, ceci ne fonctionne pas. Normal je pense lol.

Une idée pour me dire comment je pourrais faire SVP?

Merci d'avance,

Fab.

Bonjour,

En entête de ton module (donc juste avant toutes tes macros s'y trouvant), tu mets ceci :

Public nomusf as string

Dans la private sub initialize de ton Usf Basic_fr, tu mets ceci :

nomusf = Basic_fr.name

idem pour la deuxième USF VERIFICATION_FR

Ton code dans le module devient ceci :

Sub code()
        If nomusf.Menu_pays.Value = "" Then
            nomusf.Menu_pays.BackColor = &HC0C0FF
        Else: nomusf.Menu_pays.BackColor = &HFFFFFF
        End If
End Sub

Si ok, merci de cloturer le fil en cliquant sur le V vert à coté du bouton Editer

Amicalement

Ca ne fonctionne malheureusement pas.

Voici l'erreur affichée : "Qualificateur incorrect"

re,

Puis je voir le fichier ?

A te relire

Bonsoir,

Ci-joint le début de mon document avec les deux feuilles. Au clic sur le bouton de l'UserForm "BASIC_Fr", on passe sur le suivant. J'ai mis une condition toute bête pour l'essai. Je coderai ensuite de façon plus approfondie une fois le bout de code fonctionneL

Fab

189essaai.xlsm (14.09 Ko)

Bonsoir,

Aprés plusieurs essais, voici enfin le code fonctionnant :

Dim frm As Object
Set frm = VERIFICATION_Fr

Merci encore pour l'aide,

Bonne soirée,

Fabrice.

Rechercher des sujets similaires à "nom userform variable"