XL 2010 Confronter deux tableaux et remonter d'infos

Gazzzz

XLDnaute Nouveau
Bonjour à tous,

dans le fichier joint, une liste déroulante me permet de sélectionner un menu.
Après sélection, une décomposition de ce menu est générée dans un tableau "compo_menu", j'aimerai confronter ce tableau avec un tableau dans l'onglet "client" pour remonter les noms, prénoms et spécificités des clients concernés par ce menu.
Je ne sais pas par quel bout l'attraper, auriez-vous une piste à me donner?

J'ai simulé le résultat que j'aimerai obtenir dans l'onglet "étiquettes".

Je me demande si je ne dois pas générer un tableau intermédiaire, reprenant les éléments du tableau Compo_repas" en supprimant les "0" et les doublons?

o_O, bref je suis arrivé au bouts de mes compétences Excel, c'est pourquoi je sollicite les vôtres. Merci par avance pour votre aide, toutes pistes est bonne à prendre et à apprendre.

Bonne journée, Quentin.
 

Pièces jointes

  • Gazzzz_Argument liste déroulante.xlsm
    45.9 KB · Affichages: 15

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Gazzz,
En PJ un essai avec une fonction perso.
La syntaxe est : Ingredients(Nom, Ordre) avec Ordre=1,2,3 ....

VB:
Function Ingredients(Nom, Ordre)
Dim N As Integer, P As Integer, i As Integer
On Error GoTo Fin
N = Application.Match(Nom, Sheets("Clients").Range("B:B"), 0)
P = 0
For i = 3 To 20
    If Sheets("Clients").Cells(N, i) <> "" Then
        P = P + 1
        If P = Ordre Then
            Ingredients = Sheets("Clients").Cells(N, i)
            Exit Function
        End If
    End If
Next i
Ingredients = ""
Fin:
End Function
Je n'ai pas traité la date, je ne sais pas où l'extraire.
 

Pièces jointes

  • Gazzzz_Argument liste déroulante.xlsm
    47.3 KB · Affichages: 4

Gazzzz

XLDnaute Nouveau
Bonjour Sylvanu, merci beaucoup pour ta réponse!
Si j'ai bien compris, la fonction que tu as créé, récupère le nom et renvoie les spécificitées de l'onglet client?
C'est déjà une bonne piste!
Ce que je cherche à faire est un peut différent:
Lorsque tu sélectionnes un menu dans l'onglet "repas" en ligne 5, le tableau d'en dessous se modifie pour sortir toutes les spécificités liées à ce repas. cela fonctionne.
J'aimerai maintenant que toutes ces spécificités soient confrontés à l'onglet client pour ne générer que les noms des clients concernés.

En PJ un exemple concret:
Imaginons que le repas ne soit que "salade_de_tomates", le tableau d'en dessous le décompose ainsi:
Entrée
tomates
huile_olive
Légumes
Fibres
Assaisonnements

L'onglet étiquettes ne devra remonter que les client qui on l'une de ces spécificités.
Dans ce cas précis:
uniquement "Brosse Colette" pour deux raisons. Elle n'aime pas l'huile d'olive et elle n'aime pas les tomates.
J'ai simulé l’étiquette que j'aimerai obtenir.

Compliqué tout ça!

en tout cas merci beaucoup pour ton aide .

Pour la date je vais la gèrer avec AUJOURDHUI().
 

Pièces jointes

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

sylvanu

XLDnaute Barbatruc
Supporter XLD
Le faire tel que vous le voulez est une usine à gaz me semble t-il.
Une autre approche est de réutiliser ma fonction et d'ajouter dans l'étiquette un
VB:
=SI(ET(B2<>"";NB.SI(Repas!$B$4:$I$83;B2)>0);"X";"")
Ce qui donne les ingrédients non désirés et s'ils sont utilisés dans les repas.
Ce qui me semble une approche beaucoup plus simple.
 

Pièces jointes

  • Gazzzz_Argument liste déroulante(V2).xlsm
    47.7 KB · Affichages: 6

Gazzzz

XLDnaute Nouveau
Merci, il me semblait bien que ça serait très compliqué 😟
L'inconvénient de cette solution, c'est que je ne gère les spécificités qu'à l’ingrédient.

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 et la décomposition sous la sélection du repas.

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.

Je peux avoir un client dont la spécificité n'est pas un ingrédient, mais par exemple "fibres".

J'ai l'impression que le projet est un peu audacieux expliqué comme cela... en tout cas merci pour votre aide.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Oui, mais dans ce cas on devrait avoir quelque part une relation entre "fibres" et M. X.
Pourquoi ne pas rajouter dans la feuille clients en fin de tableau ces particularités.
Rien ne vous empêche de dire que Colette a le diabète.
Par contre dans Repas je vois bien Fibres qu'on peut donc extraire mais pas Diabète.
Donc comment faire la relation entre Clients-Particularités-Repas ?
 

Gazzzz

XLDnaute Nouveau
Pourquoi ne pas rajouter dans la feuille clients en fin de tableau ces particularités.
Rien ne vous empêche de dire que Colette a le diabète.

Oui, je l'ai fait juste après avoir posté. Toutes mes excuses. Pour éviter de créer trop de colonnes dans l'onglet client, je vais essayer de voir si il est possible de regrouper mes listes existantes (ingrédients, plats, familles, particularité) en une seule avec une formule dans la validation des données.

Par contre dans Repas je vois bien Fibres qu'on peut donc extraire mais pas Diabète.
Donc comment faire la relation entre Clients-Particularités-Repas ?
Je ne comprends pas ce que vous voulez dire? Si dans la feuille "repas" à l'endroit "dessert" je sélectionne "gateau_au_chocolat", "diabétique" remonte correctement.
 

laurent950

XLDnaute Accro
Bonjour,
Ca Fonctionne.
Module + Module de classe = Resultat dans Feuille etiquette

1 ) Clients = Définir les choix (De Chaque Clients)
2 ) Choix des Repas = (Les étiquettes sont créer dynamiquement / Clients)
 

Pièces jointes

  • Gazzzz_Argument liste déroulante (1).xlsm
    70 KB · Affichages: 4
Dernière édition:

Statistiques des forums

Discussions
312 321
Messages
2 087 265
Membres
103 500
dernier inscrit
Suk Ram