Bonjour,

J'ai le problème suivant:
J'ai créé la classe ci dessous

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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
 
 
Private msTypeAccident As String
Private mdDateAcc As Date
Private mvDonneeEnt() As Variant
Private mbooArret As Boolean
Private miDureeArr As Integer
'Private miReportArr() As Integer
Private mbooRestriction As Boolean
Private miDureeRest As Integer
'Private miReportRest() As Integer
Private mbooPosteAm As Boolean
Private miDureePost As Integer
'Private miReportPoste() As Integer
 
Property Get sTypeAccident() As String
 
    sTypeAccident = msTypeAccident
 
End Property
 
Property Let sTypeAccident(sTypeAccident As String)
 
    msTypeAccident = sTypeAccident
 
End Property
 
Property Get dDateAcc() As Date
 
    dDateAcc = mdDateAcc
 
End Property
Property Let dDateAcc(dDateAcc As Date)
 
    mdDateAcc = dDateAcc
 
End Property
 
Property Get vDonneeEnt() As Variant()
 
    vDonneeEnt = mvDonneeEnt
 
End Property
Property Let vDonneeEnt(ByRef vDonneeEnt() As Variant)
 
     mvDonneeEnt = vDonneeEnt
 
End Property
 
Property Get booArret() As Boolean
 
    booArret = mbooArret
 
End Property
 
Property Let booArret(booArret As Boolean)
 
    mbooArret = booArret
 
End Property
 
Property Get iDureeArr() As Integer
 
    iDureeArr = miDureeArr
 
End Property
 
Property Let iDureeArr(iDureeArr As Integer)
 
    miDureeArr = iDureeArr
 
End Property
 
Property Get booRestriction() As Boolean
 
    booRestriction = mbooRestriction
 
End Property
 
Property Let booRestriction(booRestriction As Boolean)
 
    mbooRestriction = booRestriction
 
End Property
 
Property Get iDureeRest() As Integer
 
    iDureeRest = miDureeRest
 
End Property
 
Property Let iDureeRest(iDureeRest As Integer)
 
    miDureeRest = iDureeRest
 
End Property
 
Property Get booPosteAm() As Boolean
 
    booPosteAm = mbooPosteAm
 
End Property
 
Property Let booPosteAm(booPosteAm As Boolean)
 
    mbooPosteAm = booPosteAm
 
End Property
 
Property Get iDureePost() As Integer
 
    iDureePost = miDureePost
 
End Property
 
Property Let iDureePost(iDureePost As Integer)
 
    miDureePost = iDureePost
 
End Property
 
Property Get iReportArr() As Integer()
 
    If mbooArret Then iReportArr = CALC_REPORT_UNIQUE(mdDateAcc, miDureeArr)
 
End Property
 
Property Get iReportRest() As Integer()
 
    If mbooRestriction Then iReportRest = CALC_REPORT_UNIQUE(mdDateAcc, miDureeRest)
 
End Property
 
Property Get iReportPoste() As Integer()
 
    If mbooPosteAm Then iReportPoste = CALC_REPORT_UNIQUE(mdDateAcc, miDureePost)
 
End Property

et je souhaites l'utiliser pour créer un tableau en piochant des données dans Excel à l'aide du code suivant:

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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
 
 
Sub CREATION_TABLE()
 
    Dim cAccTable() As cAccident
    'Dim cAccTemp As New cAccident
    Dim vPopulation() As Variant
    Dim i As Integer, j As Integer
    Dim rRattachementR As Range
 
    Set rRattachementR = ThisWorkbook.Sheets(1).Range("Y8")
 
 '   ReDim cAccTable(rRattachementR.Worksheet.Cells(1048576, rRattachementR.Column).End(xlUp).Row - rRattachementR.Row)
    ReDim vPopulation(4)
 
    For i = rRattachementR.Row To rRattachementR.Worksheet.Cells(1048576, rRattachementR.Column).End(xlUp).Row
 
        For j = 0 To 4
 
            vPopulation(j) = rRattachementR.Offset(i - rRattachementR.Row, j).Value
 
        Next
 
        Dim cAccTemp As New cAccident
 
        With cAccTemp
 
            .vDonneeEnt = vPopulation
            .dDateAcc = DateSerial(rRattachementR.Offset(i - rRattachementR.Row, 7).Value + 2000, rRattachementR.Offset(i - rRattachementR.Row, 6).Value, rRattachementR.Offset(i - rRattachementR.Row, 5).Value)
            .sTypeAccident = rRattachementR.Offset(i - rRattachementR.Row, 15).Value
 
            If rRattachementR.Offset(i - rRattachementR.Row, 16).Value = "AVEC ARRET" Then
 
                .booArret = True
                .iDureeArr = rRattachementR.Offset(i - rRattachementR.Row, 19).Value
 
            Else
 
                .booArret = False
                .iDureeArr = 0
 
            End If
 
            If rRattachementR.Offset(i - rRattachementR.Row, 23).Value = "OUI" Then
 
                .booRestriction = True
                .iDureeRest = rRattachementR.Offset(i - rRattachementR.Row, 24).Value
 
            Else
 
                .booRestriction = False
                .iDureeRest = 0
 
            End If
 
            If rRattachementR.Offset(i - rRattachementR.Row, 26).Value = "OUI" Then
 
                .booPosteAm = True
                .iDureePost = rRattachementR.Offset(i - rRattachementR.Row, 27).Value
 
            Else
 
                .booPosteAm = False
                .iDureePost = 0
 
            End If
 
        End With
 
        ReDim Preserve cAccTable(i - rRattachementR.Row)
        Set cAccTable(i - rRattachementR.Row) = cAccTemp
 
    Next
Mon soucis est le suivant:

Au lieu de me rajouter l’éléments unique "cAccTemp" à chaque itération de ma boucle dans "cAccTable", il me remplace l'ensemble des valeur déjà inscrite dans le tableau par la dernière valeur de "cAccTemp".
J'ai essayé plusieurs méthodes de déclaration de mon tableau, mais le problème ne semble pas venir de là.
Je ne maîtrise pas à 100% les classes et j'ai peur d'avoir mal définie celle-ci.

Dans l'attente de toute aide ou conseil.

Merci d'avance

Garruth