Copier coller une vaste plage

  • Initiateur de la discussion LaurentTBT
  • Date de début
L

LaurentTBT

Guest
Bonsoir à tous,

Dans une macro, je copie une plage d'environ 20000 lignes sur 25 colonnes d'un classeur 1 (pesant 10Mo) vers un classeur 2 (1,5 Mo avant collage).
Ensuite, je ferme le classeur 1, ce qui me fait planter excel (version XP 2002).

J'ai essayer de copier la plage initiale avec copy, de la coller avec pastespecial, de passer par une variable tableau, que je renvoie directement dans le nouveau classeur, ou encore en copiant chaque élément du tableau dans une boucle. Rien n'y fait.
Le plantage se produit à cette ligne:
activeworkbook.close savechanges:=false.

Quelqu'un connaît-il une meilleure façon de copier coller une grande plage?

Merci d'avance et bonne soirée.
 
D

Dan

Guest
Bonsoir Laurent,

Juste deux suggestions :

1. Essaie de nommer la plage initale que tu copies et utilises l'instruction "Names"

2. Lorsque tu as copié ta plage, places aussi cette instruction: Application.CutCopyMode = False

@+ Dan
 
@

@+Thierry

Guest
Salut Laurent, Dan, Minick

Bon je ne reviendrai pas sur ce qui a été dit, mais un truc me choque ...

ActiveWorkbook.Close 0 (false)

Alors pourquoi faire tout ceci, si tu ne sauve pas ?

Sinon as-tu essayé de prendre le problème à l'envers (copier la feuille entière, puis purger les lignes "Non Gratta") car c'est (on dirait) un probleme de Ram....... D'ailleurs sans macro, la même manip avec les même données marche-t'elle..... (vient d'essayer manuellement sur un PIII 800 512Ram avec ME et XL2K ça passe, mais XP est ultra gourmand (j'ai le double au bureau de ram et je plante plus)

C'est pour faire avancer le SchMinick ! oups le Schmilblick !!! lol

Bonne soirée
@+Thierry
 
L

LaurentTBT

Guest
Merci à tous pour votre aide.

En fait, c'est une grossière erreur de ma part:
le activeworkbook n'était pas le bon. Thierry avait bien senti le coup.
En fait, pendant l'écriture de mon code, c'était bien le classeur 1 (l'ancien) qui était actif, et je pensais pouvoir faire plus rapide en utilisant activeworkbook pour le fermer. Mais non! Finalement, j'ai rajouté une petite recherche de son nom pour le fermer sans ambiguïté avec l'autre.
Et comme je fermais le classeur qui comprenais la macro, forcément, Excel n'y comprenait plus rien!
Bref, faux problème, affaire réglée.

Bonne nuit.
 

Discussions similaires

Statistiques des forums

Discussions
312 505
Messages
2 089 067
Membres
104 015
dernier inscrit
kkgk