Excel Downloads
Forum

Précédent   Excel Downloads Forums > Accueil > Le salon de XLD


Réponse
 
LinkBack Outils de la discussion
Vieux 09/02/2008, 18h33   #1 (permalink)
XLDnaute Barbatruc
 
Avatar de skoobi
 
Date d'inscription: juin 2007
Localisation: Riedisheim (Mulhouse)
Version Excel : Excel 2003 (PC)
Messages: 2 498
Par défaut Taille mémoire tableau multidimensionnel

Bonjour tout le monde,

J’essaye de comprendre comment la limite de taille (en octet) d’un tableau multidimensionnel est atteinte car après quelques tests, je constate que la taille maxi varie en fonction de la dimension du tableau.
Pour calculer la taille d’un tableau (trouvé dans l’aide) :
Tableau : 20 octets
+ 4 octets par dimension
+ nombre d’éléments (de chaque dimension) fois la taille de chacun d’eux (1 octet pour un type Byte, 16 octets pour un type Variant etc…).

Exemple de limite (environ) pour des tableaux de type Byte :
1 dimension :
Code:
Dim tableau(450000000) As Byte
taille : 20+4+(1*450000000)=450000024 octets

2 dimensions :
Code:
Dim tableau(20000, 20000) As Byte
taille : 20+8+(2*20000)=40028 octets

3 dimensions :
Code:
Dim tableau(700, 700, 700) As Byte
taille : 20+12+(3*700)=21032 octets

4 dimensions :
Code:
Dim tableau(145, 145, 145, 145) As Byte
taille : 20+16+(4*145)=616 octets

Conclusion : plus la dimension augmente, plus la taille maxi du tableau diminue ?

Avez-vous les mêmes limites sur votre PC ?

Si non, cela signifie que l’on peut augmenter cette limite ?

C’est la où je veux en venir, pouvoir augmenter cette limite….(euhhh, je rêve là non…)

Gilbert
__________________
@+
skoobi

On en apprend tous les jours

Filtrer un tableau, c'est par ici:
http://www.excel-downloads.com/forum...tml#post548211

Trier un tableau, c'est par là:
http://www.excel-downloads.com/forum...tml#post558394

Aidez ce forum, devenez supporter:
http://www.excel-downloads.com/forum...tml#post442476
skoobi est déconnecté   Réponse avec citation
ANNONCES
Vieux 09/02/2008, 19h39   #2 (permalink)
XLDnaute Barbatruc
 
Avatar de pierrejean
 
Date d'inscription: janvier 2006
Localisation: 69400 LIMAS
Version Excel : Excel 2000 (PC)
Messages: 5 385
Par défaut Re : Taille mémoire tableau multidimensionnel

bonjour skoobi

Sauf erreur de ma part

Un tableau

Dim tableau(20000, 20000) As Byte

aura plutot comme limite

20+8+8*2000^2 soit 32 000 028

puis

Dim tableau(700, 700, 700) As Byte

20+12+8*700^3 soit 2 744 000 032
puis

Dim tableau(145, 145, 145, 145) As Byte

20+ 32+8*145^4 soit 3 536 405 052

Revois le nombre d'elements d'un tableau a plusieurs dimensions
pierrejean est déconnecté   Réponse avec citation
Vieux 10/02/2008, 14h42   #3 (permalink)
XLDnaute Barbatruc
 
Avatar de skoobi
 
Date d'inscription: juin 2007
Localisation: Riedisheim (Mulhouse)
Version Excel : Excel 2003 (PC)
Messages: 2 498
Par défaut Re : Taille mémoire tableau multidimensionnel

Bonjour pierrejean,

Merci, tu m'as mis sur la piste.

En fait, voici le bon calcul:

Option Base 1
Dim tableau(21536, 21536) As Byte
taille: 20+8+1*21536^2 = 463 799 324 octets

Option Base 1
Dim tableau(774, 774, 774) As Byte
taille: 20+12+1*774^3 = 463 684 856 octets

Option Base 1
Dim tableau(146, 146, 146, 149) As Byte
taille: 20+16+1*146^3*149 = 463 708 300 octets

La limite en fait dépend de la mémoire disponible sur le PC au moment du lancement de la macro.
Voilà
__________________
@+
skoobi

On en apprend tous les jours

Filtrer un tableau, c'est par ici:
http://www.excel-downloads.com/forum...tml#post548211

Trier un tableau, c'est par là:
http://www.excel-downloads.com/forum...tml#post558394

Aidez ce forum, devenez supporter:
http://www.excel-downloads.com/forum...tml#post442476

Dernière modification par skoobi ; 31/05/2008 à 11h37.
skoobi est déconnecté   Réponse avec citation
Vieux 10/02/2008, 15h05   #4 (permalink)
XLDnaute Barbatruc
 
Avatar de pierrejean
 
Date d'inscription: janvier 2006
Localisation: 69400 LIMAS
Version Excel : Excel 2000 (PC)
Messages: 5 385
Par défaut Re : Taille mémoire tableau multidimensionnel

Re

Effectivement je m'etais un peu melangé les pieds entre les bits et les octets
1 octet=8 bits =1 byte
je vais l'ecrire 100 fois pour le memoriser (vieille technique utiliséee par feu mon instituteur ,toujours doublée pas mon père qui n'aurait surement pas porté plainte pour un gifle (qu'il doublait tout aussi systematiquement) . Il est vrai qu'il n'etait pas gendarme)
pierrejean est déconnecté   Réponse avec citation
ANNONCES
Réponse

Liens sociaux

Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui

Discussions similaires
Discussion Auteur Forum Réponses Dernier message
taille mémoire agnèsk Forum Excel 0 14/12/2006 19h29
coller tableau en memoire sur la feuille G.David Forum Excel 5 24/04/2006 15h02
taille d'un tableau Lee Forum Excel 3 19/08/2005 10h26
Tableau multidimensionnel Fred Forum Excel Downloads - Archives 1 08/10/2003 19h57
Copie d'un tableau en memoire VBA vers une feuille excel bicoun Forum Excel Downloads - Archives 4 07/05/2003 10h33


Fuseau horaire GMT +2. Il est actuellement 05h55.


(C) 2006 Excel Downloads