Après avoir fait l'userform de saisie de mon inventaire, j'aimerais le completer avec une autre Userfom. (merci encore pour le coup de main)
je joint un fichier pour éclaircir ma question
j'ai une combobox dans la cellule B7 avec une liste déroulante avec un code qui fait office de recherche qui me convient très bien.
je n'arrive pas a mettre le code de cette liste déroulante dans mon userform avec la Combobox que j'ai nommé ComboTri
Aussi sans vouloir abuser, j'ai plusieurs tex box dans mon userform avec lesquelles j'aimerais que lorsque je choisi l'article de ma combobox , la valeur de cet article apparaissent dans la texbox . Les valeurs de chaque article sont sur la feuille INVENTAIRE dans différente colonne.
Ah non ! Ca ce n'est pas possible dans un userform
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set ws = Sheets("INVENTAIRE")
list_Noms = Application.Transpose(ws.Range("A16:A" & ws.Range("A1048576").End(xlUp).Row).Value)
Me.ComboTri.List = list_Noms
Me.ComboTri.Value = Target.Value
Me.ComboTri.Visible = True
Me.ComboTri.Activate
Else
Me.ComboTri.Visible = False
End If
End Sub
Quand vous êtes dans VBE, le menu de gauche vous donne tous les objets
Donc il faut sélectionner "UserForm", vous avez ensuite dans le menu de droite tous les évènements
Du coup on peut essayer avec "Initialize"
Ce qui donne tout simplement
Code:
Private Sub UserForm_Initialize()
Set ws = Sheets("INVENTAIRE")
list_Noms = Application.Transpose(ws.Range("A16:A" & ws.Range("A1048576").End(xlUp).Row).Value)
Me.ComboTri.List = list_Noms
End Sub
Ah non ! Ca ce n'est pas possible dans un userform
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set ws = Sheets("INVENTAIRE")
list_Noms = Application.Transpose(ws.Range("A16:A" & ws.Range("A1048576").End(xlUp).Row).Value)
Me.ComboTri.List = list_Noms
Me.ComboTri.Value = Target.Value
Me.ComboTri.Visible = True
Me.ComboTri.Activate
Else
Me.ComboTri.Visible = False
End If
End Sub
Private Sub UserForm_Initialize()
Set ws = Sheets("INVENTAIRE")
list_Noms = Application.Transpose(ws.Range("A16:A" & ws.Range("A1048576").End(xlUp).Row).Value)
Me.ComboTri.List = list_Noms
End Sub
Comme ça non, mais en déclarant en tête Private WithEvents ws As Worksheet, puis en mettant la Set ws = Sheets("INVENTAIRE") dans une Private Sub UserForm_Initialize(), on peut utiliser une Private Sub ws_SelectionChange(ByVal Target As Range)