VBA - problème de mémoire

vokaC

XLDnaute Nouveau
Bonjour,

j'aimerais avoir votre avis sur le sujet. Je suis en train de faire une macro... au départ je stockais les données dans le dictionnaire principal, de trois dimensions Dico(1)(2)(3).
La deuxième dimension à 1100 valeurs environ (3 ans, 3 * 365)
La troisième n'a que 24 (heures de la journée).
et la première dimension est variable (au choix de l'utilisateur).

au dela de 150 pour la première dimension ça plante. la mémoire libre de l'ordinateur se vide et excel n'a plus de place.

J'ai réessayé de stocker les données dans un tableau de mêmes dimensions (500,3*365,24). Pareil, mémoire insuffisante.

Pourtant cela ne me parait pas excessif comme nombre de données à stocker.

pourriez-vous m'aider? est ce que je devrais déclarer différemment mes variable? est ce que c'est vraiment déconnant comme nombre de dimensions et est ce qu'il y a d'autres moyens de faire?

merci d'avance.

je vous joint en PJ le fichier test et ci-dessous la macro que j'ai créée.

------------------------------------
Sub testdico()

Dim dico As New Dictionary
Dim dico1 As New Dictionary
Dim dico2 As New Dictionary

Dim i As Integer, j As Integer, h As Integer, dateJ As Date
Dim clef As String

ReDim tabl(1 To 500, 1 To 3 * 365 + 1, 1 To 24) As Variant

Set dico = New Dictionary
For i = 1 To 500

Set dico1 = New Dictionary

For j = 1 To 3 * 365 + 1

Set dico2 = New Dictionary
dateJ = DateAdd("d", j - 1, DateSerial(2016, 1, 1))

For h = 1 To 24
clef = "H" & h
dico2.Add clef, Rnd() * 1500
Next h

dico1.Add dateJ, dico2
Set dico2 = Nothing
Next j

dico.Add i, dico1
Set dico1 = Nothing
Next i

End Sub
--------------------------------------------
Sub testtab()

Dim i As Integer, j As Integer, h As Integer, dateJ As Date
ReDim tabl(1 To 500, 1 To 3 * 365 + 1, 1 To 24) As Variant
For i = 1 To 500
For j = 1 To 3 * 365 + 1
For h = 1 To 24
tabl(i, j, h) = Rnd() * 1500
Next h
Next j
Next i
End Sub
 

Pièces jointes

  • Test Dico Tab.xlsm
    13.2 KB · Affichages: 27

Discussions similaires

Réponses
11
Affichages
284
Réponses
29
Affichages
902
Réponses
12
Affichages
243

Statistiques des forums

Discussions
312 160
Messages
2 085 842
Membres
103 003
dernier inscrit
Maxmarie14