Bonjour à tous,
Je suis débutant en VBA et pas super fort en Excel, et j'ai des problèmes pour la création et l'utilisation d'une fonction dans Excel.
Voilà ce que j'aimerais faire :
Un fichier Excel permettant de calculer la quantité d'ingrédients à acheter en fonction des plats que nous souhaitons cuisiner. Comme on utilise les mêmes ingrédients pour différents plats, pour un ingrédient donné il faudra faire la somme de la quantité nécessaire de l'ingrédient dans chaque plat multipliée par la quantité de ce plat que nous souhaiterons cuisiner.
J'ai les deux feuilles de calcul suivantes :
Feuille 2 : Besoin en ingrédients
- Colonne A : Nom du plat à cuisiner
- Colonne B : Quantité de chaque plat souhaitée
Feuille 3 : Plats et leurs recettes
- Colonne B : Ingrédients pour chaque plat
- Colonne C : Quantité
- Colonne H : Nom du plat
Voilà la fonction que j'ai créée, que je rentrerai dans une autre feuille de calcul avec la liste de tous les ingrédients :
=> Mon problème est qu'aujourd'hui, lorsque je souhaite l'utiliser, Excel me retourne l'erreur #VALEUR!, j'ai passé quatre heures à essayer de comprendre pourquoi, sans succès. J'ai l'impression que dès que j'utilise la boucle "For... To", ça ne marche pas. Est-ce que vous auriez des idées de correction ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 Function CalculBesoin(Ingredient) Dim X As Integer X = 0 'On parcours la colonne avec l'ensemble des recettes et des ingrédients nécessaires For i = 1 To 100 'Si l'ingrédient recherché est présent dans un plat If Sheets(3).Range("B" & i).Value = Ingredient Then 'On ajout au besoin de cet ingrédient la quantité qu'il faut dans ce plat qu'on multiplie par la quantité de plats que l'on souhaite réaliser X = X + Sheets(3).Range("C" & i).Value * Sheets(2).VLookup(Sheets(3).Range("H" & i).Value, Sheets(2).Range("A1:B100"), 2, False) End If Next i 'La fonction retourne la somme de ces multiplications CalculBesoin = X End Function
Merci !
Partager