Salut St@Tman, le Forum
Selon ton projet...... Deux solution...
Soluce 1
Soit tu ne décharges pas le UserForm "UsfB" qui contient donc une donnée dans une TextBox "TxbB" .... qui doit donc être transmise dans une TextBox "TxbA" du premier Userform "UsfA"....
Et par conséquent tu appelles ton Userform "UsfA" par un bouton sur le "UsfB" qui fera ceci (entre autre)
Private Sub CommandButtonSortie_Click () 'Du UsfB
'blah, blah, blah
Me.Hide '<<<<<(Le Userform reste en mémoire ainsi que les valeurs contenues dans ses controls)
with UsfA
.Show
.TxbA = UsfB.TxbB
End With
End Sub
Soluce 2
Tu utilises une Variable Public... Pour faire une variable Public dont la portée sera sur tout le Projet :
Dans un Module Standard (pas un Private Module de UserForm ou de WorkSheet, ou de ThisWorkBook) tu écris ceci en Top du Module :
Public MaTextBoxTxbB as String
'si c'est une variable de type String (Chaine de Caractères), ou bien Interger (Nombre Entier), ou bien Double (Nombre avec Décimal), etc (je ne sais pas ce qui a dans ta TextBox)
Et dans ton UsfB quand tu as des Données dans ta TextBox, tu t'arranges par un évènement quelconque (Enter, Change, Exit...) d'initialiser la Variable Public comme suit :
Private Sub TextBox1_Change()
MaTextBoxTxbB = TxbB
End Sub
Et donc dans la sortie de ce UserForm UsfB
Private Sub CommandButtonSortie_Click () 'Du UsfB
'blah, blah, blah
Unload
With UsfA
.Show
.TxbA = MaTextBoxTxbB
End Sub
Je te rassure de suite c'est beaucoup plus simple à faire qu'à expliquer !!
La soluce 2 offre l'avantage de ne pas garder chargé un UserForm entier qui, surtout si il est volumineux avec beaucoup de Controls, peut monopoliser pas mal d'espace mémoire. Alors qu'une petite Variable suffit pour garder en mémoire la String ou autre chose de ta TextBox...
Voilà Mr St@tMan, bon après midi à tous et à toutes
@+Thierry