Bonjour,
Je relance une question.
Je viens de faire un exemple pour illustrer mon problème.
En fait l'userform1 et l'userform2 font appel à l'userform3.
Je souhaite utiliser l'userform3 pour rajouter une sous-catégorie qui sera commune à l'userform1 et 2.
En utilisant l'userform1, tout fonctionne. En revanche pour l'userform2 ça n'est plus le cas.
dans le code de l'userform3 il faudrait que je puisse remplacer userform1 par une variable qui identifiera qui a lancé l'userform3.
Lancé par: userform1 ou userform2?
(Un peu comme fonctionne application.caller pour les forms)
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
Merci pour l'information.
Cordialement
ddetp