"Out of Memory" avec Excel 2016 64-bit
Résolu/Fermé
SamSpartan93
Messages postés
4
Date d'inscription
samedi 22 mars 2014
Statut
Membre
Dernière intervention
15 juillet 2019
-
Modifié le 14 juil. 2019 à 13:28
SamSpartan93 Messages postés 4 Date d'inscription samedi 22 mars 2014 Statut Membre Dernière intervention 15 juillet 2019 - 15 juil. 2019 à 22:56
SamSpartan93 Messages postés 4 Date d'inscription samedi 22 mars 2014 Statut Membre Dernière intervention 15 juillet 2019 - 15 juil. 2019 à 22:56
A voir également:
- Out of memory excel
- Input signal out of range ✓ - Forum Matériel & Système
- Out of memory ✓ - Forum Matériel & Système
- Windows memory cleaner - Télécharger - Optimisation
- Liste déroulante excel - Guide
- Out of range - Forum Ecran
3 réponses
NHenry
Messages postés
15173
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
21 décembre 2024
350
Modifié le 14 juil. 2019 à 14:10
Modifié le 14 juil. 2019 à 14:10
En calculant rapidement, cela fait
180'264'000 éléments
Un variant c'est 16 octets (sans compter la taille de la donnée (si String par exemple, ajoutes la taille de la chaine + 22 octets pour les chaines) ) donc cela fait :
2'884'224'000 octets
A mon avis tu emplafonnes largement la limite de 2Go des limites du VBA (32 bits).
Si déjà tu typais correctement tes données, tu pourrait limiter la taille en mémoire.
Ensuite, regardes les structures (Type en VBx) pour avoir des données structurées. (De plus les tableaux multi dimensionnels sont vivement déconseillés dès que tu dépasse 2 dimensions)
Et comme on ne le rappel jamais assez, VBA ne sert pas à faire des traitements complexes, c'est un détournement de fonctionnalité.
Dans ton cas, si tu dois manipuler autant de données, il faut peut être revoir la technologie utilisée, une BDD ou/et un langage plus moderne est peut être à préférer.
180'264'000 éléments
Un variant c'est 16 octets (sans compter la taille de la donnée (si String par exemple, ajoutes la taille de la chaine + 22 octets pour les chaines) ) donc cela fait :
2'884'224'000 octets
A mon avis tu emplafonnes largement la limite de 2Go des limites du VBA (32 bits).
Si déjà tu typais correctement tes données, tu pourrait limiter la taille en mémoire.
Ensuite, regardes les structures (Type en VBx) pour avoir des données structurées. (De plus les tableaux multi dimensionnels sont vivement déconseillés dès que tu dépasse 2 dimensions)
Et comme on ne le rappel jamais assez, VBA ne sert pas à faire des traitements complexes, c'est un détournement de fonctionnalité.
Dans ton cas, si tu dois manipuler autant de données, il faut peut être revoir la technologie utilisée, une BDD ou/et un langage plus moderne est peut être à préférer.
Modifié le 14 juil. 2019 à 14:33
1) Je suis d'accord pour le typage des données. Il se trouve que les données que j'exploite sont de types différents et que les gérer avec des Variant Array est beaucoup plus pratique.
2) Je précise de nouveau que j'utilise la version 64 bit d'Excel, et donc je ne m'attends pas à avoir les limitations des versions 32 bit.
3) Effectivement je vais voir à adapter mon code pour qu'il stocke les données sur une BDD plutôt que virtuellement. Cela dit mon code est plutôt long et j'ai besoin à court terme de l'analyse qu'il est sensé effectuer. Solutionner l'erreur de limitation en mémoire est vraiment la priorité pour moi en ce moment.
Sam