Question sur liste déroulante

Bonjour le forum,

Je suis entrain de mettre en application mon apprentissage sur les tableaux structurés et le VBA par la création d'une petite gestion de stock. Pour le mouvement des articles en entrée/sortie j'ai créé une liste déroulante dynamique nommée "l_designation" et que j'appelle dans un Combobox grâce à la propriété "RowSource". Cette liste fonctionne parfaitement. Toutefois je ne sais pas si cela fonctionnerait sur les Mac ou des Excel anciens. Ne vaudrai-t-il pas mieux intégrer quelques lignes dans le code du userform hébergeant la combobox? Je m'interroge sur le bien fondé de ma réflexion mais aussi sur les quelques lignes que je pourrais ajouter éventuellement. Voici le code du userform pour les mouvement d'entrées:

Private Sub CommandButton1_Click()
Dim lig As Integer
Sheets("Mouvements").Unprotect Password:="d"
With Worksheets("Mouvements").ListObjects("t_mouvement")
    If .ListRows.Count = 0 Then
        .ListRows.Add: lig = 1
    Else: .ListRows.Add: lig = .ListRows.Count
    End If
    With .DataBodyRange
        .Item(lig, 1) = Date
        .Item(lig, 2) = FormEntree.ComboBox1
        .Item(lig, 3) = Val(FormEntree.TextBox1)
        .Item(lig, 5) = FormEntree.TextBox2
    End With
End With
FormEntree.ComboBox1 = ""
FormEntree.TextBox1 = ""
FormEntree.TextBox2 = ""
End Sub

Private Sub CommandButton2_Click()
Unload FormEntree
Sheets("Mouvements").Protect Password:="d"
End
End Sub

Bonjour

que j'appelle dans un Combobox grâce à la propriété "RowSource". Cette liste fonctionne parfaitement. Toutefois je ne sais pas si cela fonctionnerait sur les Mac ou des Excel anciens. Ne vaudrai-t-il pas mieux intégrer quelques lignes dans le code du userform hébergeant la combobox?

Rowssource ne fonctionne pas sur MAC.
Puis pour la enième fois, c'est à peu près tous les jours que je l'écrit ici... (encore 2 fois hier) , oubliez cette instruction et utilisez ADDITEM ou LIST (encore plus avec les tableaux structurés d'ailleurs)

Si votre userform est unique dans votre fichier, vous n'êtes pas obligé de spécifier sont Nom (Formentree). Vous pouvez l'enlever ou la remplacer par Me (le Me n'est pas obligé non plus).7

exemple --> au lieur de Unload FormEntree vous pouvez mettre

Unload me

Crdlt

Bonjour le forum

J'ai bien l'impression que Dan m'a un peu secoué! Si les Mod lisent l'intégralité des posts ce n'est pas mon cas et j'en suis désolé. Même avec la fonction recherche on ne trouve pas forcément ce que l'on recherche. J'ai 72 ans et il me semble que je me suis fais grondé comme un gamin . Ce n'est pas bien grâve Dan je comprends que cela puisse vous excéder. J'essaie simplement de me maintenir en forme au niveau de mes neurones en apprenant excel et je pense que ce forum est une bonne façon de nous garder, nous les viocs, en bonne forme intellectuelle.
Ceci dit mon problème est toujours le même et je n'arrive pas à le résoudre. Alors je transmets mon fichier à l'avis des membres du forum afin que je puisse avoir dans ma combobox1 du formulaire "FormEntree" la liste du champs "Désignation" de mon tableau "t_stock" sachant que cette liste doit être dynamique. J'ai fait des essais avec ComboBox1.list et mon tableau structuré t_stock mais j'ai tourours le champs "Désignation" vide dans ma combobox.
Mon userform s'ouvre en cliquant sur le bouton "Réception Entrées en magasin". Il est à noter que je n'en suis qu'au début de l'application et je ne demande pas à ce qu'on me la résolve dans son intégralité. Je demande simplement à ce que les membres qui me proposent quelque chose restent uniquement dans le cadre de cette liste déroulante et je les en remercie par avance.

Bien amicalement

Yves

Bonsoir,

Hum... allez j'admets avoir été un peu trash....Désolé

C'est vrai qu'à force de répéter, on réagit et les mots peuvent parfois dépasser nos pensées. Donc mes excuses si vous avez été un peu choqué par mes propos.
"Viocs".... cela ne veut rien dire d'autant que j'en fait partie aussi.

Pour votre demande, mettez ce code dans votre userform "Formentree"

Private Sub UserForm_Initialize()

With Sheets("Stock").ListObjects("t_stock")
    If .ListRows.Count = 1 Then
        ComboBox1.AddItem .DataBodyRange.Item(1, 3).Value
    Else:
        ComboBox1.List = .ListColumns(2).DataBodyRange.Value
End If

End With

Cordialement

Re boujour

Un grand merci pour la réponse Dan. J'ai bien cherché sur le web mais je n'ai pas vu de code ressemblant à celui-ci. Je vais essayer de m'en imprégner du mieux que je le pourrai.

Cordialement.

Rechercher des sujets similaires à "question liste deroulante"