Bonjour,

j'ai à disposition dans une feuille d'un classeur Excel une extraction d'une base de données
et j'essaye de charger ces données dans une table VBA (type utilistateur).
voici la structure des types utilisés (toute remarque sera la bienvenue) :

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
Public Type TVENTES
    VV(1 To 2, 1 To 3, 1 To 12) As Double  
    VU(1 To 2, 1 To 3, 1 To 12) As Double
End Type
 
 
Public Type ITEM
    EAN As Double
    GROUP As String
    MANUF As String
    BRAND As String
    PROP As String
    LIC As String
    CAT As String
    VENTES As TVENTES
End Type
 
Public Type TOTITEM
    NBE As Integer
    ITEM(1 To 50) As ITEM
End Type

Lorque que je charge mes données dans la table TOTITEM tout se passe bien si le nombre de lignes maximum du type TOTITEM n'est pas trop élevé.
exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
	Public Type TOTITEM
	    NBE As Integer
	    ITEM(1 To 50) As ITEM
	End Type
'=>OK
 
 
	Public Type TOTITEM
	    NBE As Integer
	    ITEM(1 To 50) As ITEM
	End Type
'=>pas OK. un message d'erreur s'affiche :
	"Compile error :
	Fixed or static data can't be larger than 64K"
Comment puis-je contourner ce problème?

Un grand merci d'avance!!



Pour info voici la procédure que j'utise pour charger la table DB de type TOTITEM (déclarée en public) :

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
Public Sub LOAD_DB()
 
Dim I, J As Integer
 
DB.NBE = 0
I = 5
 
While I <= 54
    DB.NBE = DB.NBE + 1
    DB.ITEM(DB.NBE).EAN = Range("A" & I).Value
    DB.ITEM(DB.NBE).GROUP = Range("B" & I).Value
    DB.ITEM(DB.NBE).MANUF = Range("C" & I).Value
    DB.ITEM(DB.NBE).BRAND = Range("D" & I).Value
    DB.ITEM(DB.NBE).PROP = Range("E" & I).Value
    DB.ITEM(DB.NBE).LIC = Range("F" & I).Value
    DB.ITEM(DB.NBE).CAT = Range("G" & I).Value
    For J = 1 To 12
        DB.ITEM(DB.NBE).VENTES.VV(1, 1, J) = Cells(I, J + 7)
    Next J
I = I + 1
Wend
 
 
End Sub