OVH Cloud OVH Cloud

memoire pleine

5 réponses
Avatar
AndréSch
Bonjour à tous

Avec des neurones tous neufs, reposés par les vacances, je ne doute pas de
trouver rapidement réponse à mon problème...
merci d'avance :

Mon logiciel VBA sur w98 et excel 97 et assez lourd... nombreuses macros...
commandées par une barre d'outils et des boutons...

quand je lance une certaine macro 3 fois avec le bouton: bugg avec mémoire
insuffisante !!! qui va mm jusqu'à ne plus pouvoir fermer windows...

j'ai viré toutes les macros ne correspondant pas à celle lancée et toujours
le bugg...

je procède morceau de macro par morceau de macro avec une petite procédure
for i = 1 to 50 fois la macro... et je crois comprendre que les variables ne
s'effacent pas tant que ça à chaque abandon de la macro..

exemple
je crée deux tableaux au début de la procédure avec DIM tableau() et dans la
procédure je REDIM tableau (variable) plusieurs fois... au troisième passage
sur la macro: bugg !!

j'ai éssayé après chaque utilisation, dans la procédure, un REDIM (0) et je
monte à 5 passages sans bugg...

Cette instabilité m'agace et peut creer problème, le logiciel étant porté
sur plusieurs machines

il est aussi signalé "erreur cree par le module INCD..."

J'ai essayé avec xp et excel 97, c'est pareil...

j'ai vérifié tous les IF, else end if et ça ne se mélange pas...

sympa celui ou celle qui m'expliquera.... merci

André

5 réponses

Avatar
Ange Ounis
exemple
je crée deux tableaux au début de la procédure avec DIM tableau() et dans la
procédure je REDIM tableau (variable) plusieurs fois... au troisième passage
sur la macro: bugg !!


Je crois me souvenir qu'il y a un problème avec les tableaux dans Excel 97. Il
s'agit, me semble-t-il, d'une limite (gênante) au nombre d'éléments qu'ils
peuvent contenir. A vérifier.

j'ai éssayé après chaque utilisation, dans la procédure, un REDIM (0) et je
monte à 5 passages sans bugg...


La procédure habituelle pour s'assurer de la "remise à zéro" d'un tableau est
plutôt d'utiliser la méthode Erase (voir l'aide) puis de le redimensionner.

----------
Ange Ounis
----------

Bonjour à tous

Avec des neurones tous neufs, reposés par les vacances, je ne doute pas de
trouver rapidement réponse à mon problème...
merci d'avance :

Mon logiciel VBA sur w98 et excel 97 et assez lourd... nombreuses macros...
commandées par une barre d'outils et des boutons...

quand je lance une certaine macro 3 fois avec le bouton: bugg avec mémoire
insuffisante !!! qui va mm jusqu'à ne plus pouvoir fermer windows...

j'ai viré toutes les macros ne correspondant pas à celle lancée et toujours
le bugg...

je procède morceau de macro par morceau de macro avec une petite procédure
for i = 1 to 50 fois la macro... et je crois comprendre que les variables ne
s'effacent pas tant que ça à chaque abandon de la macro..

exemple
je crée deux tableaux au début de la procédure avec DIM tableau() et dans la
procédure je REDIM tableau (variable) plusieurs fois... au troisième passage
sur la macro: bugg !!

j'ai éssayé après chaque utilisation, dans la procédure, un REDIM (0) et je
monte à 5 passages sans bugg...

Cette instabilité m'agace et peut creer problème, le logiciel étant porté
sur plusieurs machines

il est aussi signalé "erreur cree par le module INCD..."

J'ai essayé avec xp et excel 97, c'est pareil...

j'ai vérifié tous les IF, else end if et ça ne se mélange pas...

sympa celui ou celle qui m'expliquera.... merci

André




Avatar
Yvan
Bonjour André.

Pas de solution, mais une suggestion: En utilisant les méthodes
Application.MemoryFree, Application.MemoryUsed et Application.MemoryTotal,
tu pourras probablement contrôler la gestion de ta mémoire, vérifier la
libération de mémoire à la sortie des procédures, etc...

Tu verras aussi l'intéret éventuel et l'efficacité dans ton cas des Redim,
Erase, ...

@+

Yvan


"AndréSch" a écrit dans le message de news:

Bonjour à tous

Avec des neurones tous neufs, reposés par les vacances, je ne doute pas de
trouver rapidement réponse à mon problème...
merci d'avance :

Mon logiciel VBA sur w98 et excel 97 et assez lourd... nombreuses
macros...
commandées par une barre d'outils et des boutons...

quand je lance une certaine macro 3 fois avec le bouton: bugg avec mémoire
insuffisante !!! qui va mm jusqu'à ne plus pouvoir fermer windows...

j'ai viré toutes les macros ne correspondant pas à celle lancée et
toujours le bugg...

je procède morceau de macro par morceau de macro avec une petite procédure
for i = 1 to 50 fois la macro... et je crois comprendre que les variables
ne s'effacent pas tant que ça à chaque abandon de la macro..

exemple
je crée deux tableaux au début de la procédure avec DIM tableau() et dans
la procédure je REDIM tableau (variable) plusieurs fois... au troisième
passage sur la macro: bugg !!

j'ai éssayé après chaque utilisation, dans la procédure, un REDIM (0) et
je monte à 5 passages sans bugg...

Cette instabilité m'agace et peut creer problème, le logiciel étant porté
sur plusieurs machines

il est aussi signalé "erreur cree par le module INCD..."

J'ai essayé avec xp et excel 97, c'est pareil...

j'ai vérifié tous les IF, else end if et ça ne se mélange pas...

sympa celui ou celle qui m'expliquera.... merci

André




Avatar
AndréSch
merci mais ça j'ai essayé et ça ne donne pas grandes indication ... Free
donne toujours la mm valeur...

je vais essayer erase...

a+ merci
"Yvan" <yvan.echange(enlever ceci)@free.fr> a écrit dans le message de news:


Bonjour André.

Pas de solution, mais une suggestion: En utilisant les méthodes
Application.MemoryFree, Application.MemoryUsed et Application.MemoryTotal,
tu pourras probablement contrôler la gestion de ta mémoire, vérifier la
libération de mémoire à la sortie des procédures, etc...

Tu verras aussi l'intéret éventuel et l'efficacité dans ton cas des Redim,
Erase, ...

@+

Yvan


"AndréSch" a écrit dans le message de news:

Bonjour à tous

Avec des neurones tous neufs, reposés par les vacances, je ne doute pas
de trouver rapidement réponse à mon problème...
merci d'avance :

Mon logiciel VBA sur w98 et excel 97 et assez lourd... nombreuses
macros...
commandées par une barre d'outils et des boutons...

quand je lance une certaine macro 3 fois avec le bouton: bugg avec
mémoire insuffisante !!! qui va mm jusqu'à ne plus pouvoir fermer
windows...

j'ai viré toutes les macros ne correspondant pas à celle lancée et
toujours le bugg...

je procède morceau de macro par morceau de macro avec une petite
procédure for i = 1 to 50 fois la macro... et je crois comprendre que les
variables ne s'effacent pas tant que ça à chaque abandon de la macro..

exemple
je crée deux tableaux au début de la procédure avec DIM tableau() et dans
la procédure je REDIM tableau (variable) plusieurs fois... au troisième
passage sur la macro: bugg !!

j'ai éssayé après chaque utilisation, dans la procédure, un REDIM (0) et
je monte à 5 passages sans bugg...

Cette instabilité m'agace et peut creer problème, le logiciel étant porté
sur plusieurs machines

il est aussi signalé "erreur cree par le module INCD..."

J'ai essayé avec xp et excel 97, c'est pareil...

j'ai vérifié tous les IF, else end if et ça ne se mélange pas...

sympa celui ou celle qui m'expliquera.... merci

André








Avatar
AndréSch
Mon cher Ange...
tu es un ange... je chercjais s'il n'y avait pas ce type de commande,
j'essaierai ce soir

merci

André
"Ange Ounis" a écrit dans le message de news:
%23O$
exemple
je crée deux tableaux au début de la procédure avec DIM tableau() et
dans la
procédure je REDIM tableau (variable) plusieurs fois... au troisième
passage
sur la macro: bugg !!


Je crois me souvenir qu'il y a un problème avec les tableaux dans Excel
97. Il s'agit, me semble-t-il, d'une limite (gênante) au nombre d'éléments
qu'ils peuvent contenir. A vérifier.

j'ai éssayé après chaque utilisation, dans la procédure, un REDIM (0) et
je
monte à 5 passages sans bugg...


La procédure habituelle pour s'assurer de la "remise à zéro" d'un tableau
est plutôt d'utiliser la méthode Erase (voir l'aide) puis de le
redimensionner.

----------
Ange Ounis
----------

Bonjour à tous

Avec des neurones tous neufs, reposés par les vacances, je ne doute pas
de trouver rapidement réponse à mon problème...
merci d'avance :

Mon logiciel VBA sur w98 et excel 97 et assez lourd... nombreuses
macros...
commandées par une barre d'outils et des boutons...

quand je lance une certaine macro 3 fois avec le bouton: bugg avec
mémoire insuffisante !!! qui va mm jusqu'à ne plus pouvoir fermer
windows...

j'ai viré toutes les macros ne correspondant pas à celle lancée et
toujours le bugg...

je procède morceau de macro par morceau de macro avec une petite
procédure for i = 1 to 50 fois la macro... et je crois comprendre que les
variables ne s'effacent pas tant que ça à chaque abandon de la macro..

exemple
je crée deux tableaux au début de la procédure avec DIM tableau() et dans
la procédure je REDIM tableau (variable) plusieurs fois... au troisième
passage sur la macro: bugg !!

j'ai éssayé après chaque utilisation, dans la procédure, un REDIM (0) et
je monte à 5 passages sans bugg...

Cette instabilité m'agace et peut creer problème, le logiciel étant porté
sur plusieurs machines

il est aussi signalé "erreur cree par le module INCD..."

J'ai essayé avec xp et excel 97, c'est pareil...

j'ai vérifié tous les IF, else end if et ça ne se mélange pas...

sympa celui ou celle qui m'expliquera.... merci

André





Avatar
AndréSch
Bonjour Ange

J'ai essayé ERASE et n'obtient mieux que redime tableau(0)....
il semble bien qu'à chaque redim se crée un nouveau tableau... et qu'ils ne
s'effacent pas en quittant exit sub ou end sub...
j'utilise 2 tableaux dans cette procédure, en supprimant 1 des deux je monte
de 5 à 6 passages... c'est donc bien le noeud du problème...

Salut

André

"Ange Ounis" a écrit dans le message de news:
%23O$
exemple
je crée deux tableaux au début de la procédure avec DIM tableau() et
dans la
procédure je REDIM tableau (variable) plusieurs fois... au troisième
passage
sur la macro: bugg !!


Je crois me souvenir qu'il y a un problème avec les tableaux dans Excel
97. Il s'agit, me semble-t-il, d'une limite (gênante) au nombre d'éléments
qu'ils peuvent contenir. A vérifier.

j'ai éssayé après chaque utilisation, dans la procédure, un REDIM (0) et
je
monte à 5 passages sans bugg...


La procédure habituelle pour s'assurer de la "remise à zéro" d'un tableau
est plutôt d'utiliser la méthode Erase (voir l'aide) puis de le
redimensionner.

----------
Ange Ounis
----------

Bonjour à tous

Avec des neurones tous neufs, reposés par les vacances, je ne doute pas
de trouver rapidement réponse à mon problème...
merci d'avance :

Mon logiciel VBA sur w98 et excel 97 et assez lourd... nombreuses
macros...
commandées par une barre d'outils et des boutons...

quand je lance une certaine macro 3 fois avec le bouton: bugg avec
mémoire insuffisante !!! qui va mm jusqu'à ne plus pouvoir fermer
windows...

j'ai viré toutes les macros ne correspondant pas à celle lancée et
toujours le bugg...

je procède morceau de macro par morceau de macro avec une petite
procédure for i = 1 to 50 fois la macro... et je crois comprendre que les
variables ne s'effacent pas tant que ça à chaque abandon de la macro..

exemple
je crée deux tableaux au début de la procédure avec DIM tableau() et dans
la procédure je REDIM tableau (variable) plusieurs fois... au troisième
passage sur la macro: bugg !!

j'ai éssayé après chaque utilisation, dans la procédure, un REDIM (0) et
je monte à 5 passages sans bugg...

Cette instabilité m'agace et peut creer problème, le logiciel étant porté
sur plusieurs machines

il est aussi signalé "erreur cree par le module INCD..."

J'ai essayé avec xp et excel 97, c'est pareil...

j'ai vérifié tous les IF, else end if et ça ne se mélange pas...

sympa celui ou celle qui m'expliquera.... merci

André