gros fichiers "Excel" se plante

M

Marc

Guest
Bonjour à tous,

Je manipule de gros fichiers qui souvent atteignent 40.000 enregistrements ou plus.

Lorsque j'exécute mes macros, il arrive fréquemment qu' Excel se plante.

L'ecran se fige ou se transforme en écran blanc. Parfois cela se débloque mais d'autres fois, je dois fermer et relancer excel avec bien sûr la perte du travail.
Je travaille sous windows 2000 et la mémoire est 1 GB.

Que faire ?
 
@

@+Thierry

Guest
Bonjour Marc, le Forum

Tu ne donnes pas suffisamment d'information quant à la teneur de tes gros fichiers... Ni quant à la nature de tes macros, ni même quant à ton niveau de programmation...

Donc en vrac quelques pistes...

Y a-t'il beaucoup de Formules ? (Si Oui tenter de faire des Paste Value Only)
Y a-t'il beaucoup de Liens ? (Même remède)
Y a-t'il beaucoup de formats différents (Les supprimer)
Y a-t'il beaucoup de shapes, objets, images, couleurs (Les Supprimer)

Pour les Macros, parlons nous de Procédures VBA ou de Macro Enregistrées ?

Car il faut savoir que des Variables mal déclarées, ou pas décalrées du tout
font des ravages dans la mémoire...

Il fait aussi vérifier les boucles si il en a, afin qu'elles ne tournent pas à l'inifinie... Ou simplement qu'elles fassent un embriglio de passages et repassages...

......


Des Lignes de Codes peuvent alléger la mémoire :
En début de Procédure...
With Application
.ScreenUpdating = False
.Calculation = xlCalculationManual
End With

En Fin de Procédure
With Application
.ScreenUpdating = TRue
.Calculation = xlCalculationAutomatic
End With

Voilà, sans plus d'info.... Tout ce que je sais c'est que je manipule des classeur avec plus de 50,000 enregistrements sur 30 colonnes sans aucun soucis avec 256 de Ram sous Win 2K / Office 2 K mais ils sont simplement des imports TXT (sans fioritures).

Bon App
@+Thierry
 
M

Marc

Guest
Merci pour la réponse



Bien,

Mon fichier de data est un fichier sans formules ni formats car recopiage des valeurs uniquement.

J'ai en effet beaucoup de formules dans l'élaboration des macros, dans ce cas-ci "Sumproduct", pas d'objets, pas de liens.

Mes variables sont bien déclarées et sont soit "Global" soit "Dim".

Les boucles ne présentent pas de problèmes.

Je vais suivre ton conseil afin d'alléger la mémoire avec ScreenUpdating et Calculation car je crois que c'est là le problème. Le temps de recalcul est parfois très long.


A+
 
J

JyM

Guest
salut Marc,

j'ai connu la même misère avant de passer sous Acces
(la seule solution MSO de stockage viable avec tes volumes)

je suppose, avec ces quantités, que tes calculs sont statiques,
qu'ils établissent une pour toute,
pour chaque ligne une trituration irrévocable de ce que tu as importé.

qq pistes :
>vire de la feuille les formules qui réfèrent à des plages immenses;
>pour afficher trois-quatre totaux/critères en en-tête/pied de colonne,
qq boucles macro travaillent très vite ;
>pour les formules en ligne même conseil ;
ou fais une fonction macro que tu appelles depuis la feuille ;
ou emplis la colonne de ta formule puis copier-valeur ensuite seulement
colonne suivante ;
>sauvegarde à chaque pas gagné ;
>au besoin (pour ta propre conviction intellectuelle)
établis une vérif par sondage des valeurs calculées,
voire un test de cohérence P*sommeQ = sommeP*Q ; dispersion ;
>accessoirement, élague ton environnement de travail, affichage sobre,
pas d'appli concurrente, vacance du réseau.

'muse toi bien
JyM
 

Statistiques des forums

Discussions
312 502
Messages
2 089 040
Membres
104 010
dernier inscrit
Freba