Reprise de données à partir d'autres feuilles

Bonjour,

J'ai besoin d'aide car je bloque sur la procédure que je fais ! En effet je souhaite que sur la feuille FT soit repris les ingrédients et la quantité qui sont indiqués dans la feuille Données_FT. pour cela pas de soucis. Ensuite une fois qu'ils sont repris sur la Feuille FT je souhaite que pour chaque ingrédients que l'unité et le prix soit indiqué en allant le prendre sur la feuille mercurial.

J'ai donc fais une RechercheV. Sauf que les données ne sont pas dans le même tableau alors pour pallier à cela j'ai fais des Error ToGo avec des alternatives. Cela fonctionne bien mais ayant 30 ingrédients pour lequel je dois le faire cela m'indique que ma procédure est trop longue. Je suis persuadé que je peux bien simplifier mon code mais je ne trouve pas la solution. Quelqu'un parmi vous peut-il m'aiguiller ?

Merci d'avance

7ft.xlsm (65.31 Ko)

Bonjour

Quel est l'intérêt d'un tableau par type d'aliment ?

Un seul tableau avec une colonne Type simplifierait nettement

En plus tu exploites mal les tableaux structurés :

  • pas nommés correctement : ils s’appellent tous Tableau_Mercurial_Crémerie suivi d'un chiffre
    idem dans Données où on a plusieurs Tableau_Données_Portions.
  • ils contiennent des lignes vides
  • les validations vont au-delà des tableaux

On n'a aucun intérêt à utiliser VLOOKUP en VBA mais plutôt Find et il faut apprendre à faire des boucles et à ne quasi jamais utiliser on error goto si tu veux coder...

On peut alimenter assez facilement par PowerQuery un tableau avec les 4 colonnes de FT.

Qu'y a--il dans les colonnes CM et Fabrication ?

image

Bonjour 78chris,

Pour commencer, merci d'avoir pris le temps de regarder mon fichier et de me répondre.

En effet ton retour m'est bien utile pour progresser.

Pour te répondre sur tes questions :


"Quel est l'intérêt d'un tableau par type d'aliment ?"
: Le but est de retrouver facilement les produits par catégorie lorsque les tarifs de mercurial vont être remis à jour. De même je compte faire un userform pour permettre la création de recette et dans celui-ci pour l'ajout d'ingrédients je veux permettre une recherche par catégorie.

"Un seul tableau avec une colonne Type simplifierait nettement" Effectivement peut être que cela simplifierai la mise en place de ce que je souhaite faire.

"En plus tu exploites mal les tableaux structurés :

[s=co-c0504d][/s]
  • pas nommés correctement : ils s’appellent tous Tableau_Mercurial_Crémerie suivi d'un chiffre
    idem dans Données où on a plusieurs Tableau_Données_Portions.
  • ils contiennent des lignes vides
  • les validations vont au-delà des tableaux" : Oui tout à fais je n'ai pas fait attention je vais remettre cela au propre

"On n'a aucun intérêt à utiliser VLOOKUP en VBA mais plutôt Find et il faut apprendre à faire des boucles et à ne quasi jamais utiliser on error goto si tu veux coder..." :

Je ne connais pas Find (je pense que tu aura remarqué que je débute à la façon dont j'ai écrit mon code). Je vais donc regarder de quoi il s'agit. Je ne savais pas qu'il fallait eviter "Error GoTo". Et pour les boucles je vais donc m'atteler à apprendre cela

"On peut alimenter assez facilement par PowerQuery un tableau avec les 4 colonnes de FT." : Pour PowerQuery je fais mon Mea Culpa car je ne connais pas du tout, aussi je me mets de suite la dessus pour découvrir

Qu'y a--il dans les colonnes CM et Fabrication ?: La colonne CM correspond au Coût matière pour chaque ingrédient en fonction de la qté nécessaire à la recette. Et Fabrication aux étapes nécessaires pour élaborer la recette.

Encore une fois merci, cela me donne de très bonne piste de travail pour arriver au résultat escompté et surtout progresser.

Bonjour

PowerQuery est plus facile que VBA pour nombre de choses

"CM correspond au Coût matière pour chaque ingrédient en fonction de la qté nécessaire à la recette"

Tes Prix correspondent à l'unité de la mercuriale ? 23 € le gramme de courgettes ?

Les quantités QI_x en Données_FT sont pour 1 portion ou le nombre en colonne C ?

78Chris,

PowerQuery est plus facile que VBA pour nombre de choses

D'accord mais est-ce possible d'automatiser le traitement comme pour une macro ? Je m'explique si je passe de la recette 1 à la recette 2 cela se fait automatiquement la mise en forme ou faut-il repasser à chaque fois par le module PowerQuery ?

"CM correspond au Coût matière pour chaque ingrédient en fonction de la qté nécessaire à la recette"

Tes Prix correspondent à l'unité de la mercuriale ? 23 € le gramme de courgettes ?

En faite CM va correspondre effectivement au tarif de l'unité de la mercurial fois la quantité nécessaire dans la recette. Par exemple pour ma recette j'ai besoin de deux kilos de courgette à 23€/gr soit 460000€ (je précise que le tarif est ici complétement fictif ou alors c'est vraiment de la bonne). De même l'unité Gr va être remplacée par kilo.

Les quantités QI_x en Données_FT sont pour 1 portion ou le nombre en colonne C ?

Les Quantité QI_X correspond à la quantité d'ingrédient qu'il faut pour réaliser la recette par rapport à la portion prévu. Une recette peut être prévu pour 50,100,150 ou 200 portions.

Bonjour Edouard35, le fil

Pour ce qui de ta colonne Ingrédients

=INDEX(Données_FT!$C$2:$BN$5; EQUIV(FT!$B$3;Données_FT!$C$2:$C$5;0); (LIGNE()-LIGNE($7:$7)) *2 +1)

Et pour la colonne Quantité

=INDEX(Données_FT!$C$2:$BN$5; EQUIV(FT!$B$3;Données_FT!$C$2:$C$5;0); (LIGNE()-LIGNE($7:$7)) *2 +2)

Ou :

Données_FT!$C$2:$BN$5

Représente ton tableau situé dans l'onglet [Données_FT]

Il faut l'adapter en hauteur, éventuellement en longueur en fonction de tes données réelles

ATTENTION !!! Il faut absolument décrire ce tableau en valeur absolu !!!

FT!$B$3

Est l'intitulé de [FT] à rechercher verticalement dans le même tableau

Données_FT!$C$2:$C$5

Est la zone de recherche verticale des données dans [Données_FT] (en fait les intitulés dans [Données_FT])

(LIGNE()-LIGNE($7:$7)) *2 

Est la colonne a faire ressortir, sachant que Ligne()-ligne($7:$7) donnera un compteur "automatique" de 1 à... n
Il est multiplié par 2 pour "sauter" les colonnes puisque ton tableau est sous la forme ingrédient - quantité

Puis pour les ingrédients, j'ajoute 1 pour passer le 1er couple intitulé-portions et commencer au 1er ingrédient

Et pour les quantités, j'ajoute 2 pour la même raison, ce qui décalera sur la quantité


Par contre pour ce qui est des Unités et Prix je suis entièrement d'accord avec 78chris !

Il est absolument inutile d'avoir un tableau par catégorie d'ingrédients, sauf à vouloir compliquer les choses, voir ralentir les traitements

Un seul tableau avec une colonne "type ingrédient" est suffisant et beaucoup plus simple et rapide à traiter, avec le même type de formule et sans VBA !

RE

D'accord mais est-ce possible d'automatiser le traitement comme pour une macro ? Je m'explique si je passe de la recette 1 à la recette 2 cela se fait automatiquement la mise en forme ou faut-il repasser à chaque fois par le module PowerQuery ?

Oui la requête va se baser sur le choix fait en cellule B3 de l'onglet FT : Test 4 et Test1 ci-dessous

Reste le problème de la colonne fabrication

image image
Rechercher des sujets similaires à "reprise donnees partir feuilles"