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.

usf2

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

Rechercher des sujets similaires à "liaison entre userforms"