Passer variable d'un userform à un userform en argument

Bonjour,

Dans un userform j'ai une série d'invite de saisie, j'ai besoin de transférer à 1 autres userform ces informations déjà saisie.

Est-ce possible de passer ces données dans un tableau ou par une série de variable ?

Il y a la solution de déclarer un tableau public ou l'ensemble des variables public mais cela alourdi le code.

Merci par avance

Bonjour,

gloutoni a écrit :

Dans un userform j'ai une série d'invite de saisie, j'ai besoin de transférer à 1 autres userform ces informations déjà saisie.Est-ce possible de passer ces données dans un tableau ou par une série de variable ?

Oui tout à fait

gloutoni a écrit :

Il y a la solution de déclarer un tableau public ou l'ensemble des variables public mais cela alourdi le code

Déclarer un tableau public, alourdi le code

Ben alors dis nous comment faire

Bonjour,

Dans UserForm2 :

MsgBox UserForm1.TextBox1

Peut-être plus lisible mais question allègement....

eric

Je n'ai pas été clair,

Je saisie dans le userform1 : disons textbox1 et textbox2

depuis userform1 j'appelle userform2 et je souhaiterais passer en argument textbox1 et textbox2.

Comment puis-je faire ou comment puis-l'écrire ?

Bonjour,

gloutoni a écrit :

Je n'ai pas été clair,

Je saisie dans le userform1 : disons textbox1 et textbox2

depuis userform1 j'appelle userform2 et je souhaiterais passer en argument textbox1 et textbox2.

Comment puis-je faire ou comment puis-l'écrire ?

Je pense qu'il faudrait que tu nous expliques à quoi te sert le passage de ses arguments

A+

Tu disais : j'ai besoin de transférer à 1 autres userform ces informations déjà saisie.

Ce que fait ma proposition c'est récupérer leur valeur.

Pour les passer en argument il suffit de :

sub machin (ch1 as string, ch2 as string)

et

machin toto, tata 'pour l'appel

Et que désires-tu passer exactement ?

Si ce n'est pas sa valeur c'est le nom de l'objet ? Fait le avec une chaine

Ou bien passe une variable objet (non testé)

eric

Dans le userform1, 2 textbox ou sont saisie des informations

sous certaine condition j'ouvre un userform2 qui reprend les information déjà saisie (d'où l'utilité de les passer en argument)

que je confronte au informations déjà contenu dans mon document excel.

userform1 :

Private Sub valider_Click()
    UserForm2(telephone).Show
end sub

userform2 :

Private Function UserForm_Initialize(ByVal telephone As String)
    valider.Enabled = False
    MsgBox (telephone)
End Function

mais cela me renvoi une erreur

Ben oui, il vaut mieux ne pas toucher aux paramètres par défaut mis par vba sur les proc événementielles.

Et pourquoi tu ne voulais pas du MsgBox UserForm1.TextBox1 ???

Parce que ce que je souhaite c'est passer des variables au userform2 pour que celui-ci les traites et les utilise


Au pire je vais déclarer un tableau public et y stocker mes variables mais je trouvais dommage d'utiliser autant d'espace pour des variables qui dans mon cas ne servent que très rarement et temporellement faiblement

Bonsoir

Une idée en passant

Si tu ne décharges pas de la mémoire (Unload Me) ton Userform1 mais que tu le masques (Me.Hide) tu auras accès aux contrôles

donc facile de faire

Private Sub UserForm_Initialize()
  Me.TextBox1 = UserForm1.TextBox1
  Me.TextBox2 = UserForm1.TextBox2
End Sub

Parfait c'est exactement ce que je voulais merci

????

Qu'est que je t'avais mis en 1ère réponse ?

eric

Rechercher des sujets similaires à "passer variable userform argument"