IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Gestion des classeurs erreur 1004


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 5
    Par défaut Gestion des classeurs erreur 1004
    Bonjour,

    J'ai deux problèmes sr ce même sujet.
    1) J'ai developpé une macro dans un classeur qui permet de copier une feuille template dans ce même classeur un certain nombre de fois. Cependant, au bout d'un certain nombre de feuilles copiés dans ce même classeur j'ai le message suivant "la methode copy de la classe worksheet a echoué". Si je ferme Excel et que je relance la macro, elle termine de copier les feuilles manquantes.

    2) A la fin de mon programme, je crée un classeur dans lequel je copie un certain nombre de feuilles. ET là j'ai le même problème. J'ai essayé d'ouvrir ce classeur dans une autre application dans le but de pouvoir faire un xlapp=nothing à la fin du programme, mais Excel n'arrive pas à copier les feuilles dans une autre appli.

    Etant donné qu'àchaque fois pour que le programme s'achève, il me suffit de relancer Excel, et d'exécuter de nouveau la macro, je me suis dit qu'il y avait une histoire de mémoire là-dessous, mais je n'y connais rien...


    Pouvez-vous m'aider?


    Merci de toute aide sur le sujet.

    Sofoulaki

  2. #2
    Membre Expert
    Avatar de JackOuYA
    Inscrit en
    Juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1 040
    Par défaut
    bonsoir,


    tu utilise quel code pour ta copie ? l'erreur apparaît aprés la copie de combien de feuilles?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 5
    Par défaut
    Pour la copie de la feuille template dans le même classeur j'utilise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Worksheets(strSpecModel).Copy after:=Worksheets(Sheets.Count)
    Worksheets(Sheets.Count).Name = strNom
    ça plante au bout de 15 feuilles

    Pour la copie dans le nouveau classeur, j'utilise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Set OriginBook = ThisWorkbook
    Workbooks.Add
    Set DestBook = ActiveWorkbook        
    DestBook.SaveAs (strFullName)
    Pour chaque feuille OriginSpec, voilà en gros ce que je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    OriginWbk.Worksheets(OriginSpec).Copy_  after:=DestWbk.SheetsDestWbk.Sheets.Count)
    DestWbk.Sheets(OriginSpec).Activate
    OriginWbk.Worksheets(OriginSpec).Cells.Copy
    DestWbk.Worksheets(OriginSpec).Range("A1").PasteSpecial Paste:=xlValues
    Application.CutCopyMode = False
    Pour 15 feuilles ça marche, si je refait la même manip sans fermer excel puis relancer Excel, ça plante au bout de 10 feuilles, et si je relance ça plante à la premiere feuille. Que puis-je faire? sacanht que normalement en phase de test je dois monter à 70-80 feuilles...

    Merci de toute aide

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 753
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Worksheets(strSpecModel).Copy after:=Worksheets(Sheets.Count)
    Worksheets(Sheets.Count).Name = strNom
    A mon avis, ce code peut planter si tu as des feuilles de graphiques: Sheets.Count renvoie le nombre total de feuilles, graphiques compris.
    Or, Worksheets est la collection des feuilels de calcul uniquement: si tu lui indique un index supérieur à son nombre d'éléements, ta méthode Copy a toutes les chances de planter.

    Cela t'a-t-il aidé?

    Pour ton deuxième problème je verrai après: un bug à la fois, c'est ma devise!

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 5
    Par défaut
    Bonjour,

    Tout d'abord merci de ton aide.
    J'ai remplacé tous mes "Sheets" par "Worksheets", mais cela ne change rien (je n'ai que des feuilles de calcul dans mon classeur).

    Je pense vraiment qu'il s'agit d'un problème de "mémoire" car il suffit que je relance Excel pour que ça fonctionne.

    Toutes les idées sont les bienvenues

    Sofoulaki

  6. #6
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Sauve ton fichier toute les 10 feuilles.
    Ca devrait aider.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

Discussions similaires

  1. gestion des non erreurs dans un fichier
    Par vince2005 dans le forum Langage
    Réponses: 9
    Dernier message: 17/12/2012, 17h52
  2. Fonction de type GetValue utilisée dans classeur - Erreur 1004
    Par nex92 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 23/09/2012, 17h44
  3. [XL-2003] Création de feuille dans un autre classeur : erreur '1004'
    Par Benjycool dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 29/04/2010, 11h11
  4. [AS 2] Gestion des collisions [ERREUR]
    Par zippeurfou dans le forum ActionScript 1 & ActionScript 2
    Réponses: 0
    Dernier message: 07/11/2009, 23h03
  5. [MVC] gestion des droits/erreurs : vue ou contrôleur ?
    Par Invité2 dans le forum Langage
    Réponses: 8
    Dernier message: 06/12/2008, 16h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo