Impossible de copier + d 45 Feuilles !

  • Initiateur de la discussion CelineG
  • Date de début
C

CelineG

Guest
Bonjour à tous !

Je crée des fichiers pour ma boite qui permet de suivre des désordres sur des appartements. (des malfaçons si vous voulez)

Je permet donc de créer une fiche pour chaque logement, avec la saisie du désordre, l'entreprise concernée par le désordre...

Puis mon entreprises a besoin de savoir ce qu'il reste à faire / à corriger par entreprise sur chaque logmeent.

Je crée donc un fichier de synthèse par entreprise (un nouveau fichier), qui reprend chaque fiche de logement sur laquelle l'entreprise concernée est présente.

Mais je m'aperçois qu'à la 46ème page (j'ai mis un compteur pour savoir si ça intervenait à un moment précis ou si ça venait du contenu des fiches et la je ne crois pas) c'est plus possible de copier les feuilles dans mon autre classeur !

voici le joli petit message d'erreur : 'la méthode Copy de la classe Worksheet a échoué'

Donc voila si vous aviez une petite idée de ce que je peux faire, je la prend avec grand plaisir !

(ne me demandez pas mon fichier, meme réduit o max il est encore bien trop gros!! j'espère juste que vous pourrez m'aider un petit peu quand meme)

Merci beaucoup
 

Abel

XLDnaute Accro
Bonjour CelineG,

Malheureusement, je n'ai pas de solution à proposer.

Juste pour dire que j'ai déjà constaté ce 'phénomène'.

Nous avons un fichier de factures qui, arrivé à un certain nombre d'onglets (un par factures), provoque le même style de message.

Pour nous, c'est plus de 45. Il doit y avoir une question de taille, effectivement, là dessous. Mais pas uniquement.
J'ai déjà travaillé sur des fichiers de plusieurs Mo avec des formules et des macro et sans trop de soucis hors la lenteur en fonction du matériel. Le fichier de factures est bien plus petit en poids, et pourtant ....

La seule solution que nous ayons trouvée (pour le moment) est de scinder le fichier.

Si quelqu'un d'autre a des informations à ce sujet, je suis également preneur.


Abel.
 

sousou

XLDnaute Barbatruc
Bonjour à tous
Ce phénomène se produit si vous utilisez la méthode sheets.copy

1 Si vous regardez le nom de la feuille (propriété code name)dans le project vb, vopus vous apercevez que le nom de la feuille est différent du nom de l'onglet:
Par exemple si la feuille 1 à dans son onglet 'toto'
dans vb cette feuille s'appel feuil1(toto)

2 Lors de la copy la deuxième feuille va s'appeler feuil11(nom de l'onglet)

3 si vous copiez cette nouvelle feuille ont verra feuille111( nom de l'onglet)

Très vite le nombre de caractère généré va bloquer excel
avec code name= feuil111111111111....

Pour éviter cela, il faut utiliser une feuille comme modèle pour effectuer les copies.

de cette manière, vous aurez feuil1,feuil11, feuil12 ect.

suivant les besoins ont peur triouvez d'autres ruses en fonction des évènnement de votre appli


Je sais ne n'est peut-être pas très clair, mais cela devrait vous aider.

End Sub
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Bonjour le fil

Et bien j'ai constaté que même avec une feuille Modèle que l'on copie plusieurs fois au bout d'un moment Excel perd les pédales et merts l'errreur qu'à constater Celine.

La seule possibilité que j'ai trouvé est d'ajouter une feuille et de faire une mise en forme via VBA pour avoir ce que l'on désire. Avec un Application.screenupdating = false cela va assez vite tout dépend de la complexité de la feuille.

Malheureusement je n'ai pas trouvé d'autres solutions.

Pour le nombre 45 c'est purement aléatoire. relance ta macro à partir du nombre de feuilles où tu t'es arrété et tu verras que tu en feras moins de 45 ; Recommence et tu verras que tu en feras encore moins...

Voili voilou

Bonne soirée
 
C

CelineG

Guest
Bonjour,

c'est vrai que c'est une solution mais c'est super long ! mon screenupdating marche pas et mes utlistauer ont un réseau des postes pas très rapide ça va être affreux !!

je peux pas me servir d'un modele car il faut que je récupère des données précise sur les feuilles de chaque logement d'un immeuble. la je dois en faire 67 j'ai pas fini !!!

merci quand meme je vais voir s'il ya pas plus rpaide pour moi.
 
C

CelineG

Guest
Bonjour à tous !!

J'ai modifié ma macro pour l'optimisé un peu (elle en avait besoin !)

et je crée mon classeur avant de commencer à copier, puis je mets les feuilles dont j'ai besoin dedans avec ça

Sheets(i).Copy Before:=Workbook

et je viens de tester avec 52 feuilles et je n'ai pas eu de probleme. j'avoue que je comprend pas toujours excel ! Faudrait pouvoir etre sur que ça ne va plus JMS planter!! car il va m'arriver d'avoir + de 100 feuilles à copier!!

bon courage à tous!
 

Discussions similaires

Réponses
56
Affichages
1 K

Statistiques des forums

Discussions
312 613
Messages
2 090 232
Membres
104 455
dernier inscrit
alix