Argument liste déroulante

Gazzzz

XLDnaute Nouveau
Bonjour à tous,

je cherche à créer un fichier pour améliorer mon quotidien. Cependant je bute sur un problème, j'ai beau m'acharner je ne vois pas comment le résoudre!

  • Dans un onglet "repas", j'ai créé plusieurs colonnes: "entré", "viande/poisson", "accompagnement" etc...
  • J'ai créé des onglets "ingrédients" (œuf, farine, sel, tomate).
  • Un onglet "plats" (lasagnes, pâtes carbonara)
chaque plats est constitués d'ingrédients, jusque la OK.

  • J'ai ensuite créé un onglet "famille" (dessert, fromage, fruit).
Dans mon onglet "plat" on retrouve une colonne permettant d'associer une famille à un plat. Exemple "mousse au chocolat" est associé à "dessert".

Je souhaite créer plusieurs listes déroulantes dans l'onglet "repas" qui ne me propose que les "plats" correspondant.

sous dessert, la liste filtrerait les "plats" ayant été indiqués comme desserts.

Difficile à expliquer, ce sera beaucoup plus clair avec le fichier.

Si l'un d'entre vous à une solution ce serait super. Ce simple fichier peut vraiment améliorer mon travail de tous les jours!!

Merci à tous, je vous souhaite une très bonne soirée. Soyez prudent.

Quentin.

PS, j'utilise excel 2007.
 

Pièces jointes

  • Etiquettes.xlsx
    23 KB · Affichages: 16

Rouge

XLDnaute Impliqué
Bonjour,

Autre proposition, création de listes déroulantes (validation de données) sous chaque titre.
VB:
Sub Liste_Plats()
    Dim f4 As Worksheet, f5 As Worksheet
    Dim DerLig_Plats As Long
    Dim i As Long, j As Long
    Dim Plat As String
    
    Application.ScreenUpdating = False
    Set f4 = Sheets("Plats")
    Set f5 = Sheets("Repas")
    DerLig_Plats = f4.Range("A" & Rows.Count).End(xlUp).Row
    For i = 2 To 9 'on passe tous les plats en revue
        Cpt = 0
        Plats = ""
        Type_Plat = f5.Cells(4, i)
        For j = 2 To DerLig_Plats
            If f4.Cells(j, "B") = Type_Plat Then
                Plats = Plats & "," & f4.Cells(j, "A")
                Cpt = Cpt + 1
            End If
        Next j
        If Cpt <> 0 Then
        Plats = Right(Plats, Len(Plats) - 1)
            With f5.Cells(5, i).Validation
                .Delete
                .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=Application.Transpose(Plats)
                .IgnoreBlank = True
                .InCellDropdown = True
                .InputTitle = Type_Plat
                .ShowInput = True
                .ShowError = True
            End With
        End If
    Next i
    Set f4 = Nothing
    Set f5 = Nothing
End Sub

Cdlt
 

Pièces jointes

  • Gazzzz_Argument liste déroulante.xlsm
    33.1 KB · Affichages: 3

Gazzzz

XLDnaute Nouveau
Whaou!!!!

Plusieurs semaines que je ne trouve pas de solution et vous m'en proposez deux qui fonctionnent à merveille toutes les deux!

Je vous remercie très sincèrement, je commence ma journée par ça. Quelle communauté o_O
Le reste de mon fichier sera basé sur ce genre de "filtres", je vais donc voir quelle solution je suis en mesure de comprendre et d'adapter par la suite. Un énorme merci encore une fois.
Ce fichier va me servir tous les jours, c'est un immense service que bous m'avez rendu!!!!
Je vous souhaite une aussi bonne journée que la mienne.

Quentin.
 

Gazzzz

XLDnaute Nouveau
Grace à votre aide, j'ai pu avancé pas mal !!!

J'ai conservé la solution de "Rouge" même si celle de fanfan38 fonctionne aussi 👍
D’ailleurs fanfan je suis limitrophe avec le 38!

Je vous explique l'objectif final de ce projet. Nous livrons des repas à domicile aux personnes âgées.
Certains n'aiment pas les fruits, d'autres juste les pommes. Certain ont du diabète, d'autre ne tolèrent pas les fibres. Certain ne prennent pas de dessert, d'autre uniquement ceux au chocolat. Cela explique l'architecture un peu biscornue de mon fichier.
J'ai voulu gérer toutes ces particularités. Au final, je veux aboutir à l'édition automatique d'un fichier tous les jours en prenant en compte les spécificités de chacun d'entre eux et du menu.

Sur l'onglet "repas", j'ai créé des lignes (celles en couleurs) allant cherchés automatiquement toutes ces spécificités en fonction du menu sélectionné. Je pense que ma méthode n'est pas la plus performante mais c'est ce que je sais faire 😅

Comment puis-je confronter toutes ces spécificités à celles de l'onglet "client" et remonter les noms (et idéalement la ou les spécificités) des clients concernés par le menu du jour?

Je fais une pause, je vous souhaite un bon appétit.
 

Pièces jointes

  • Gazzzz_Argument liste déroulante.xlsm
    44.5 KB · Affichages: 5

Statistiques des forums

Discussions
312 193
Messages
2 086 062
Membres
103 110
dernier inscrit
Privé