Erreur de mémoire VBA insuffisante

Ce didacticiel expliquera l'erreur de mémoire insuffisante de VBA.

L'erreur VBA Out of Memory se produit lorsqu'Excel a utilisé toutes les ressources de votre ordinateur lors de l'exécution d'une macro et manque littéralement de mémoire pour continuer à calculer ou à exécuter du code. Cela peut se produire lorsque de nombreuses applications sont en cours d'exécution et que vous essayez d'exécuter une grande macro dans Excel, ou peut-être lorsque vous avez créé une boucle perpétuelle dans Excel par erreur.

(Consultez notre Guide de gestion des erreurs pour plus d'informations sur les erreurs VBA)

Causes d'erreur de mémoire insuffisante

Une erreur de mémoire insuffisante peut se produire si l'on travaille avec un classeur contenant de nombreuses feuilles de calcul et des milliers de lignes. Si nous créons une boucle qui fonctionne avec un grand volume de données, une erreur de mémoire insuffisante peut se produire. Cela peut également se produire si nous travaillons avec plusieurs objets et définissons chaque objet avec une instruction SET, mais n'effaçons pas les références aux objets entre les procédures ou les boucles.

Par exemple, la boucle suivante peut certainement provoquer une erreur de mémoire si vous avez plusieurs fichiers ouverts avec plusieurs feuilles.

1234567891011121314 Mémoire de sous-test()Dim wb comme classeurDim ws As Feuille de calculDim i comme célibatairePour chaque wb dans Application.WorkbooksPour chaque ws dans wb.SheetsFaire jusqu'à ActiveCell = "A1048576"Cellule active = 1 + ije = je + 1ActiveCell.Offset(1, 0).SélectionnerBoucleWS suivantWb suivantFin du sous-marin

Prévention d'une erreur de mémoire insuffisante

Libérer des objets

Si nous travaillons avec des boucles et des objets, nous devons nous assurer que nous définissons l'objet sur RIEN une fois qu'il a été utilisé et qu'il n'est plus nécessaire - cela libérera de la mémoire.

Programmation VBA | Le générateur de code fonctionne pour vous !

Assurez-vous qu'une seule instance d'Excel est en cours d'exécution

Si nous travaillons avec des fichiers volumineux et de grandes quantités de données, vérifiez que vous n'avez pas plusieurs sessions d'Excel ouvertes - il ne doit être ouvert qu'une seule fois. Un moyen de vérifier cela consiste à accéder au Gestionnaire des tâches et à voir combien d'instances d'Excel sont en cours d'exécution.

presse Ctrl+Alt+Supprimer sur le clavier,

Cliquer sur Gestionnaire des tâches et assurez-vous qu'il n'y a qu'une seule instance d'Excel en cours d'exécution. Dans le graphique ci-dessous, il y a une instance, avec 2 fenêtres.

Nous pouvons également vérifier dans le gestionnaire de tâches qu'aucune instance d'Excel ne s'exécute en arrière-plan (c'est-à-dire non visible).

Faites défiler vers le bas dans le Gestionnaire des tâches jusqu'à ce que vous voyiez Processus en arrière-plan et assurez-vous qu'Excel ne figure pas dans cette liste de programmes.

Vérifiez la taille de votre fichier Excel

Il y a souvent des lignes et des colonnes accessibles sous celles de vos feuilles de calcul qui sont réellement utilisées. Excel utilise de la mémoire dans ces cellules, même si ces cellules sont vides. Vérifiez la taille du fichier en appuyant sur CTRL+MAJ+FIN sur le clavier pour voir où atterrit votre pointeur de cellule. S'il atterrit bien en dessous de la dernière cellule que vous utilisez, assurez-vous de supprimer toutes les lignes et colonnes vides au-dessus du pointeur de cellule, puis réenregistrez le fichier - cela réduira la taille de votre fichier Excel.

Autres façons de vérifier la mémoire

Il existe plusieurs autres façons de libérer de la mémoire dans Excel. Une bonne idée est de fermer Excel si vous ne l'utilisez pas, puis de l'ouvrir plus tard - cela libérera toute la mémoire qu'Excel stocke car il a tendance à stocker de la mémoire même lorsqu'un classeur n'est pas ouvert ! Assurez-vous toujours que votre version d'Office est à jour en recherchant les mises à jour sur votre PC et recherchez tous les compléments VBA qui peuvent être utilisés, mais que vous n'utilisez pas - vous pouvez les désinstaller pour libérer encore plus de mémoire.

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave