Bonsoir le forum
Pour un projet dans mes études, je dois créer un planning de repas: 3 repas par jour, équilibrés. La masse et les calories des aliments doivent être calculées en fonction de l'utilisateur qui fait usage du planning. Je code donc sur VBA.
J'ai du mal à réaliser bien des choses mais j'aimerais savoir si vous pouviez m'aider sur ce point en particulier:
J'aimerais créer deux types : Aliment (nom, masse et calorie) et PetitDejeuner (nom, et 6 aliments).
Je voudrais initialiser un tableau de type PetitDejeuner à l'aide de boucles, car c'est très répétitif.
En fait, j'ai sur la feuil2 de mon tableur Excel toutes les données:
Sur chaque ligne se trouve un petit déjeuner composé de son nom (colonne C), et des 6 aliments qui le composent:
aliment 1: nom sur la colonne E, masse sur F, calorie sur G
aliment 2: nom sur la colonne I, masse sur J, calorie sur K
aliment 3: nom sur la colonne M, masse sur N, calorie sur O
aliment 4: nom sur la colonne Q, masse sur R, calorie sur S
aliment 5: nom sur la colonne U, masse sur V, calorie sur W
aliment 6: nom sur la colonne Y, masse sur Z, calorie sur AA
La ligne pour un petit déjeuner est donc toujours la même. Ce sont les colonnes qui varient.
Voici mon code, qui ne marche pas:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| 'Déclaration du type Aliment qui contient le nom, la masse et les calories de chaque aliment
Public Type Aliment
Nom As String
Masse As Double
Calorie As Double
End Type
'Déclaration du PetitDejeuner qui contient le nom et 6 aliments
Public Type PetitDejeuner
Nom As String
x1 As Aliment
x2 As Aliment
x3 As Aliment
x4 As Aliment
x5 As Aliment
x6 As Aliment
End Type
'Déclaration du tableau PetitDejeuner
Public Sub PetitDejeunerTableau()
Dim Depart As Range
Depart = Feuil2.Range("E3")
Dim PetitDejTab(26) As PetitDejeuner
Dim i As Integer
For i = 0 To 26
PetitDejTab(1).Nom = Feuil2.Range("C" & 3 + i)
Dim j As Integer
For j = 0 To 20 Step 4 'J'ai mis un pas de 4 puisque je change de colonne
x1.Nom = Depart.value(0, j)
x1.Masse = Depart.Offset(0, j + 1).value
x1.Calorie = Depart.Offset(0, j + 2).value
Next
Next
End Sub |
Il faudrait que j'incrémenté les valeurs de x1 à x2 mais je n'y arrive pas.
J'avais écrit: "x" & j+1 mais ça ne marche pas. Je ne sais pas comment coder ce genre de problème.
J'ai énormément de problème avec ce projet, mais j'espère pouvoir trouver une solution à celui-ci...
J'espère avoir été claire 
Je vous remercie d'avance.
PS: Je peux envoyer mon fichier si besoin.
Partager