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:
Mon soucis est le 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
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
Partager