OVH Cloud OVH Cloud

Copie impossible...

7 réponses
Avatar
bruno_35
Bonjour !
Je travail sur un classeur qui effectue des calculs sur une base de
donn=E9es, ces calculs sont copi=E9s sur des feuilles de diff=E9rents
noms.
Le soucis est que , au bout d'un certain nombre de copie, j'obtiens le
message d'erreur suivant:
Erreur d'ex=E9cution '1004'
La m=E9thode Copy de la classe Worksheet a =E9chou=E9.

Le probl=E8me ne vient pas de la macro car si je tente de faire une
copie "manuelle" d'une feuille cela ne fonctionne pas et aucun message
n'apparait.
Je ne vois pas d'o=F9 peut venir le probl=E8me... Peut on faire qu'un
nombre limit=E9 de copie dans Excel ?

J'ai trouv=E9 le m=EAme sujet ici, mais sans r=E9ponse:
http://groups.google.fr/group/microsoft.public.fr.excel/browse_thread/threa=
d/b1a421d7a37504a4/66deefa8bd2568d1?q=3Dcopie+impossible&rnum=3D1#66deefa8b=
d2568d1


Merci d'avance !

7 réponses

Avatar
claudy
Bonjour,
tu n'aurais pas une protection quelque part?
a+
Claudy
"bruno_35" a écrit dans le message de news:

Bonjour !
Je travail sur un classeur qui effectue des calculs sur une base de
données, ces calculs sont copiés sur des feuilles de différents
noms.
Le soucis est que , au bout d'un certain nombre de copie, j'obtiens le
message d'erreur suivant:
Erreur d'exécution '1004'
La méthode Copy de la classe Worksheet a échoué.

Le problème ne vient pas de la macro car si je tente de faire une
copie "manuelle" d'une feuille cela ne fonctionne pas et aucun message
n'apparait.
Je ne vois pas d'où peut venir le problème... Peut on faire qu'un
nombre limité de copie dans Excel ?

J'ai trouvé le même sujet ici, mais sans réponse:
http://groups.google.fr/group/microsoft.public.fr.excel/browse_thread/thread/b1a421d7a37504a4/66deefa8bd2568d1?q=copie+impossible&rnum=1#66deefa8bd2568d1


Merci d'avance !
Avatar
bruno_35
J'ai tout vérifié... il n'y a aucune protection.
Avatar
bruno_35
aprés quelques test, le nombre de copie possible est de 26.
Toutefois, je me suis aperçu que si je ferme mon classeur lorsque
l'erreur apparait (et que je sauvegarde) et que je l'ouvre quelques
instants plus tard, le programme refonctionne trés bien.
Avatar
Trirème
Bonjour Bruno,

J'ai déjà eu ce problème, il est lié à la mémoire utilisée par Excel.
Le nombre de feuilles pouvant être copiées avant apparition de l'erreur
dépend de la RAM du PC. Pour t'en convaincre, essaie sur d'autres machines si
tu peux.
La duplication manuelle était également impossible.
Je pouvais m'en sortir en tronçonnant le travail AVEC ENREGISTREMENT,
QUITTER, RELANCER Excel entre chaque exécution mais c'était pas clean.

Je pratiquais ainsi : un formulaire (une feuille) est mis à jour par macro
puis dupliqué et renommé dans le classeur courant.
Maintenant je procède ainsi : le formulaire est mis à jour par macro,
j'ajoute une feuille (vide) dans un nouveau classeur créé en début de macro,
j'y copie les données du formulaire (en valeur) ainsi que les formats, les
largeurs de colonne, les hauteurs de ligne. Il faut aussi refaire les mêmes
mise en page, recréer éventuellement les noms (Zone impression, ligne en
haut, colonne à gauche...). Enfin je nomme cette feuille comme il convient.

En procédant ainsi, on pert tous les formats et mise en page du formulaire
initial. Il faut tout refaire par macro. Mais je peux copier autant d'onglets
que je veux (en tout cas je suis passé de 26 (environ) à plus de 300 (pour
tester))

Dans la copie vers la nouvelle feuille, il faut faire attention aux objets
dessinés (flêches, cadres...) et aux cellules contenant éventuellement
plusieurs polices ou gras-non gras, italique-non italique...)

J'ai cherché d'autres solutions avant de procéder ainsi.

Cordialement,
Trirème


Bonjour !
Je travail sur un classeur qui effectue des calculs sur une base de
données, ces calculs sont copiés sur des feuilles de différents
noms.
Le soucis est que , au bout d'un certain nombre de copie, j'obtiens le
message d'erreur suivant:
Erreur d'exécution '1004'
La méthode Copy de la classe Worksheet a échoué.

Le problème ne vient pas de la macro car si je tente de faire une
copie "manuelle" d'une feuille cela ne fonctionne pas et aucun message
n'apparait.
Je ne vois pas d'où peut venir le problème... Peut on faire qu'un
nombre limité de copie dans Excel ?

J'ai trouvé le même sujet ici, mais sans réponse:
http://groups.google.fr/group/microsoft.public.fr.excel/browse_thread/thread/b1a421d7a37504a4/66deefa8bd2568d1?q=copie+impossible&rnum=1#66deefa8bd2568d1


Merci d'avance !




Avatar
bruno_35
Merci du conseil !
Tu confirmes ce que je pensai.
Avatar
Ange Ounis
J'ai cherché d'autres solutions avant de procéder ainsi.


As-tu essayé d'enregistrer ta feuille 'formulaire' comme modèle (avec les bons
formats, mises en forme diverses et variées) ? Au lieu d'ajouter une feuille
quand tu en as besoin et de la reformater par macro, tu pourrais seulement
ajouter ton modèle.
Non ?

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

Bonjour Bruno,

J'ai déjà eu ce problème, il est lié à la mémoire utilisée par Excel.
Le nombre de feuilles pouvant être copiées avant apparition de l'erreur
dépend de la RAM du PC. Pour t'en convaincre, essaie sur d'autres machines si
tu peux.
La duplication manuelle était également impossible.
Je pouvais m'en sortir en tronçonnant le travail AVEC ENREGISTREMENT,
QUITTER, RELANCER Excel entre chaque exécution mais c'était pas clean.

Je pratiquais ainsi : un formulaire (une feuille) est mis à jour par macro
puis dupliqué et renommé dans le classeur courant.
Maintenant je procède ainsi : le formulaire est mis à jour par macro,
j'ajoute une feuille (vide) dans un nouveau classeur créé en début de macro,
j'y copie les données du formulaire (en valeur) ainsi que les formats, les
largeurs de colonne, les hauteurs de ligne. Il faut aussi refaire les mêmes
mise en page, recréer éventuellement les noms (Zone impression, ligne en
haut, colonne à gauche...). Enfin je nomme cette feuille comme il convient.

En procédant ainsi, on pert tous les formats et mise en page du formulaire
initial. Il faut tout refaire par macro. Mais je peux copier autant d'onglets
que je veux (en tout cas je suis passé de 26 (environ) à plus de 300 (pour
tester))

Dans la copie vers la nouvelle feuille, il faut faire attention aux objets
dessinés (flêches, cadres...) et aux cellules contenant éventuellement
plusieurs polices ou gras-non gras, italique-non italique...)

J'ai cherché d'autres solutions avant de procéder ainsi.

Cordialement,
Trirème


Bonjour !
Je travail sur un classeur qui effectue des calculs sur une base de
données, ces calculs sont copiés sur des feuilles de différents
noms.
Le soucis est que , au bout d'un certain nombre de copie, j'obtiens le
message d'erreur suivant:
Erreur d'exécution '1004'
La méthode Copy de la classe Worksheet a échoué.

Le problème ne vient pas de la macro car si je tente de faire une
copie "manuelle" d'une feuille cela ne fonctionne pas et aucun message
n'apparait.
Je ne vois pas d'où peut venir le problème... Peut on faire qu'un
nombre limité de copie dans Excel ?

J'ai trouvé le même sujet ici, mais sans réponse:
http://groups.google.fr/group/microsoft.public.fr.excel/browse_thread/thread/b1a421d7a37504a4/66deefa8bd2568d1?q=copie+impossible&rnum=1#66deefa8bd2568d1


Merci d'avance !






Avatar
Trirème
Bonjour Ange

J'ai cherché d'autres solutions avant de procéder ainsi.


As-tu essayé d'enregistrer ta feuille 'formulaire' comme modèle (avec
les bons formats, mises en forme diverses et variées) ? Au lieu
d'ajouter une feuille quand tu en as besoin et de la reformater par
macro, tu pourrais seulement ajouter ton modèle.
Non ?
Non !

En fait j'ai cherché à modifier la feuille modèle par défaut. Celle
disponible lorsque on fait 'Insertion - feuille'.
J'ai bien réussi à la modifier (et à l'utiliser) mais elle est propre à
Excel alors que je la souhaitais spécifique au classeur.

Par contre, suite à ta remarque bienvenue, j'ai investigué plus loin et
je viens de découvrir cette possibilité d'insérer LA feuille de son choix.
Ce qui se traduit en VBA par (j'écris ça pour tout le monde car je n'ai
jamais vu cette syntaxe dans l'aide d'Excel. Si ça peut aider) :

' Insertion de la feuille par défaut (syntaxe courante)
Sheets.Add
' Insertion de la feuille de son choix (code fourni par l'enregistreur)
Sheets.Add Type:= _
"C:WINDOWSApplication DataMicrosoftModèlesLaFeuille.xlt"
' LaFeuille.xlt peut être un classeur de une ou plusieurs feuilles

' Pour l'ajout d'un nouveau classeur de son invention :
Workbooks.Add Template:= _
"C:WINDOWSApplication DataMicrosoftModèlesLaFeuille.xlt"
' Évidemment le nom du répertoire varie selon les versions d'Excel et/ou
' de windows

Encore merci Ange, car même si c'est un bout de code qui fait tout le
travail, la mise en page prend un temps fou.
La seule petite contrainte est de s'assurer que tous ceux qui ont la
macro ont aussi le modèle.

Cordialement,
Trirème