Liaison entre userforms
Bonjour,
J'ai un userform3 qui peut être lancé de l'userform1 et de l'userform2.
Le traitement des données de l'userform3 dépend des informations contenues une fois dans l'userform1 et parfois dans l'userform2.
Comme il existe
application.caller = "nom_forms"
, existe t-il une instruction vba pour déterminer l'origine de l'userform?
Merci
ddetp88
Bonjour,
Pour afficher un userform :
nom_userform.Show
pour sortir d'un userform :
Unload nom_userform
Il suffit d'insérer aux bons endroits (évènements des objets de l'userform)
Si tu veux plus d'aides, il faut nous présenter le code et le classeur Excel qui va avec.
Bonjour Raja,
Merci pour ta réponse.
Les quelques lignes formulant ma demande ne sont pas assez précises.
Je viens de faire un exemple pour illustrer mon problème.
En fait l'userform1 et l'userform2 font appel à l'userform3.
Je souhaite utilisé l'userform3 pour rajouter une sous catégorie qui sera commune à l'userform1 et 2.
dans le code de l'userform3 il faudrait que je puisse remplacer userform1 par une variable qui identifiera qui a lancé l'userform3.
userform1 ou userform2.
Private Sub Enr_Click()
Dim SC, DLig As Integer, Col As Integer, Ref As String, PlageTri As String
UserForm1.ComboBox2.Clear
With Sheets("donnees")
' recherche de la plage des sous catégories
Col = .Range("G1:I1").Find(what:=UserForm1.ComboBox1, LookAt:=xlWhole).Column ' trouve le n° de colonne de la catégorie sélectionnée
DLig = .Cells(Rows.Count, Col).End(xlUp).Row + 1 'dernière ligne de la sous catégorie
.Cells(DLig, Col) = Me.TextBox1.Value 'ecriture de la sous catégorie
'Adapte en fonction de la situation
If DLig = 2 Then
UserForm1.ComboBox2.AddItem Cells(2, Col).Value
Else
'récupère les coordonnées de tri de la sous catégorie
PlageTri = .Range(.Cells(2, Col), .Cells(DLig, Col)).Address
Ref = .Cells(2, Col).Address
'tri
.Range(PlageTri).Sort key1:=.Range(Ref), Orientation:=xlAscending
'affecte les sous-catégories au tableau SC
SC = .Range(.Cells(2, Col), .Cells(DLig, Col)).Value
'affecte les sous-catégorie au combobox
UserForm1.ComboBox2.List = SC 'affecte la plage au combobox
End If
Unload Me ' ferme l'userform
End With
End Sub
Vois le fichier en PJ.
cordialement et merci.
ddetp