Problème pour la création de tableau de classe
Bonjour,
J'ai le problème suivant:
J'ai créé la classe ci dessous
Code:
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:
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