Afficher UserForm à partir d'une liste déroulante

Bonjour à toutes et tous

Je suis tout juste débutant sur VBA, comme l'indique le titre, j'aimerais à partir d'une liste déroulante, afficher son/sa UserForm associé(e)

J'ai bien sûr fait pas mal de recherches pour essayer de comprendre, mais je manque de connaissances

Si quelqu'un pourrait m'expliquer s'il vous plaît, je lui en serai bien reconnaissant

La ligne définir Sh dans la feuille active bloque et affiche le message "Erreur d'exécution '-2147352571 (80020005)': l'élément portant ce nom est introuvable."

Option Explicit

Sub ListeNoms()
Dim Sh As Shape
Dim Nom As String
Dim Cel As Range

  Set Sh = ActiveSheet.Shapes(Application.Caller) 
  Nom = Sh.ControlFormat.List(Sh.ControlFormat.Value)
  Set Cel = Sheets("Données").Columns("B").Find(what:=Nom, LookIn:=xlValues, lookat:=xlWhole)
  If Not Cel Is Nothing Then
    UserForms.Add(Cel.Offset(0, 1)).Show
  End If
End Sub

Le fichier est en pièce jointe

Très belle journée

Bonjour

Ci joint ma solution

il n'est pas nécessaire d'avoir plusieurs userform

a+ François

Bonjour François,

Du tonnerre votre première solution, je vous remercie beaucoup !!

Je l'ai appliquée à mon cas et c'est exactement ce que je voulais.

Je sais que pour le cas que j'ai envoyé, il n'y a pas besoin d'avoir plusieurs UserForm, sauf que dans mon cas, il sera nécessaire car chaque ligne renverra à des parties différentes

En vous remerciant encore

Ceci n'empêche pas cela

par macro on peut renommer un label et faire correspondre les différents cas

A+ François

Je sais à quoi correspond les labels mais honnêtement, je ne saurais appliquer votre proposition. Un exemple ne serait pas de refus

Autre petite question concernant votre 2ème solution, je n'arrive pas à la mettre en application, si vous pouviez m'aiguiller svp?

Merci encore

Pour la 1ere question

UserForm1.Caption = Target.Value

userform1.label1.caption="essai"

userform1.show

Pour la 2eme

il faut permuter le vba

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$E$9" Then Exit Sub
Select Case Target.Value
Case Is = "Jean"
UserForm1.Show
Case Is = "Paul"
UserForm2.Show
Case Is = "Jacques"
UserForm3.Show
End Select
End Sub

A+ François

Ah oui, tout simplement.. J'ai besoin de prendre des cours VBA

Encore merci cher François

Beau dimanche à vous

Rechercher des sujets similaires à "afficher userform partir liste deroulante"