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:

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
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.