Bonjour Michael, le Forum
Ta question est trop succinte pour y répondre clairement. En fait tout dépend de la structure de tes procédure...
Si par exemple tu utilises la méthode "Unload Me" depuis le UserForm1 quand tu lances la commande UserForm2.Show... Alors les données entrées (ou sélectionnées) dans les Controls ActiveX du UserForm1 ne sont plus disponible puisque "Déchargées" (Unload) de la mémoire...
Si, par contre tu utilise la méthode "Me.hide" depuis le UserForm1 quand tu lances la commande UserForm2.Show... Alors les donnée sont toujours en mémoire et disponibles... Dans ce cas il suffit, depuis le UserForm2, de rédiger des Syntax dans ce style pour récupérer ces données :
TextBox1 = UserForm1.ComboBox1.Value
Il y a aussi la seconde possibilité de "Unloader" le UserForm1 mais en ayant pris soin au préalable de transférer dans des variables publiques le contenue des Controls nécéessaire avant leur déchargement.
Pour faire une Variable Publique il faut rédiger en dehors de toute Sub en Top (tout en haut) d'un Module Standard, (NB : Pas un Private Module de UserForm) une syntax de ce style :
Public MaValeur As String (Si la valeur est une chaine de caractères par exemple)
On pourra alors au moment de quitter le UserForm1 écrire :
If ComboBox1.Value <> "" Then
MaValeur = ComboBox1.Value
Et Ensuite faire Unload USerForm1
Dans le UserForm2 il suffuira de faire réference à MaValeur.......
Cette seconde méthode (Public Variable) est plus contraignante à rédiger que de garder le UserForm1 en mémoire, mais par contre, elle ménagera la mémoire de ton PC car le Hide, garde TOUT le UserForm en mémoire, dommage si c'est juste pour un Mot à conserver !!!
Voilà pour une première approche
Bon Premier Mai à Tous et Toutes
@+Thierry