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 :

Erreur d'exécution 1004 : Impossible de coller les informations [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 26
    Points : 10
    Points
    10
    Par défaut Erreur d'exécution 1004 : Impossible de coller les informations
    Bonjour,

    Je dispose de plusieurs fichiers Excel ayant la même structure : un nombre d'onglet (variable) et sur chacun d'entre eux un tableau de la même forme mais avec un nombre de lignes variable. Je dois regrouper tous ces tableaux dans un fichier Excel récapitulatif.

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    Sub CreationSynthese()
     
    Dim Ws As Worksheet
     
        ' Parcours de tous les fichiers
        ' -----------------------------
     
        ChDir "C:\Users\toto\Documents\Volumes" 'Placement dans le bon répertoire
        LesFichiers = Dir("C:\Users\toto\Documents\Volumes\*.xls") 'Récupère les fichiers
     
     
        While Len(LesFichiers) > 0
            Workbooks.Open LesFichiers
            For Each Ws In ThisWorkbook.Worksheets
                AvantDerniereLigne = ActiveSheet.UsedRange.Rows.Count
                Range("A14:X" & AvantDerniereLigne).Copy
                Workbooks("Synthèse.xlsm").Activate
                DebutFichier = ActiveSheet.UsedRange.Rows.Count + 1
                  Range("B" & DebutFichier & ":X" & AvantDerniereLigne).Select
                ActiveSheet.Paste
                Application.CutCopyMode = False
             Next Ws
                Workbooks(LesFichiers).Close
                LesFichiers = Dir 'Passage au fichier suivant
        Wend
     
    End Sub
    Seulement lorsque j'exécute ce programme, l'erreur suivante apparait :
    Erreur d'exécution 1004 : impossible de coller les informations car les zones Copier et de collage sont de forme et de taille différentes.

    Cette erreur doit être due à la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Range("B" & DebutFichier & ":X" & DebutFichier).Select
    Je ne sais pas comment déclarer la plage dans laquelle je veux copier mes données autrement de façon à ne plus être confrontée à cette erreur.
    Si quelqu'un a une idée qui pourrait me faire avancer, je l'étudierais avec plaisir.

    Merci de votre aide !

  2. #2
    Invité
    Invité(e)
    Par défaut Bonjour,
    regarde ça!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    Sub CreationSynthese()
    Dim Wb As Workbook
    Dim Ws As Worksheet
    Dim MySheetActuel As Worksheet
        ' Parcours de tous les fichiers
        ' -----------------------------
     
       ' ChDir "C:\Users\toto\Documents\Volumes" 'Placement dans le bon répertoire
        LesFichiers = Dir("C:\Users\toto\Documents\Volumes\*.xls") 'Récupère les fichiers
     Set MySheetActuel = ActiveSheet
     
        While Len(LesFichiers) > 0
           Set Wb = Workbooks.Open("C:\Users\toto\Documents\Volumes\" & LesFichiers)
            For Each Ws In Wb.Worksheets
                Ws.Range("A14:X" & Ws.UsedRange.Rows.Count).Copy MySheetActuel.Range("A" & MySheetActuel.UsedRange.Rows.Count + 1)
            Next
                Wb.Close False
                LesFichiers = Dir 'Passage au fichier suivant
        Wend
     
    End Sub

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 26
    Points : 10
    Points
    10
    Par défaut Re,
    Impressionnant !! Merci mille fois !!

    Une dernière petite question : Est-il possible de ne pas avoir de lignes blanches entre chaque tableau, ou dois-je forcément les supprimer à la main ?

  4. #4
    Invité
    Invité(e)
    Par défaut
    il faut balayer MySheetActuel de la dernière ligne à la première et supprimer les linge vide!

  5. #5
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 26
    Points : 10
    Points
    10
    Par défaut
    Très bien !

    Je vais essayer ça alors, et tenter de supprimer ces linges vides

    Encore merci pour votre aide qui va me faire économiser bien du temps ! Bonne continuation.

    Crysta

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 12/08/2009, 11h04
  2. Erreur d'exécution '1004' lors d'une mise en page
    Par alex.a dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/06/2007, 09h00
  3. [VBA-E] Erreur d'exécution '1004'
    Par bibi5883 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 13/03/2007, 14h31
  4. [VBA-E] erreur d'exécution 1004 ?
    Par toy dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 24/05/2006, 13h15

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