Bonjour à tous,
J’ai un onglet avec 800 000 lignes et 162 colonnes sur lesquels je boucle pour faire plusieurs traitements. Pour gagner en efficacité, je charge le tout dans un array et je fais le traitement. Jusque là tout va bien et c’est même plutôt performant. Par contre lorsque je veux replacer cet array dans ma feuille, j’ai un message d’erreur comme quoi la mémoire est insuffisante.
Dim vData as variant
vData = range(« A1
H800000 »).value2
Boucle sur le variant et traitement des données
Range.(« A1
H800000 »).value2 = vData -> Erreur car mémoire insuffisante
J’ai trois questions :
1-) Est-ce que le fait d’avoir une machine plus puissante réglerait le problème ?
2-) Est-ce qu’il y a un moyen de faire une boucle pour replacer les données par tranches de 100000 lignes par exemple ?
3-) Est-ce que je suis rendu à un point où j’aurais besoin d’un autre outil plus performant?
Pour la deuxième partie du titre, est-il possible d’effectuer des opérations (Tri, déplacement de lignes, etc...) dans un variant (Mon vData dans mon exemple)? Comme vous pouvez l’imaginer, c’est un enjeu de performance pour moi. Mes tests avec un plus petit jeux de données m’a montré que je double presque ma performance en chargeant le tout dans un variant (~35 min de traitements plutôt que 60 min si je fais les manipulations directement sur la feuille Excel)
Merci beaucoup de votre aide !