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 :

Regrouper des fichiers Excel en un seul [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 33
    Par défaut Regrouper des fichiers Excel en un seul
    Bonjour,

    J'ai à ma disposition 304 fichiers Excel nommés Contact(1), Contact(2), ...Contact(304)

    Chaque fichier contient un seul onglet portant le même nom que le fichier.
    Je souhaite récupérer le contenu des cellules allant de A2 à I51 de chaque fichier et les regrouper en un seul fichier.

    Voici après plusieurs recherches le code que j'ai essayer d'utiliser, en l'adaptant à mon besoin bien sûr :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub test3()
    Dim Fich As String, Ligne As Double
    Fich = Dir("C:\Contacts\*.xls")
    Do While Fich <> ""
    Ligne = Range("a51").End(xlUp).Row + 1
    Workbooks.Open "C:\Contacts\" & Fich
    Range("A2", Range("I51").End(xlUp)).Copy _
    ThisWorkbook.Sheets(1).Cells(Ligne, 1)
    ActiveWorkbook.Close False
    Fich = Dir
    Loop
    End Sub
    Le nombre total de lignes dans mon fichier final est inférieur à ce que je devrais obtenir.

    Merci d'avance à toute personne pouvant me venir en aide, soit en voyant d'où vient l'erreur, soit en me guidant vers une autre piste.

    Pierre

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    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
    Sub test3()
    Dim Wbk As Workbook
    Dim Fich As String
    Dim j As Long
     
    Fich = Dir("C:\Contacts\*.xls")
    Application.ScreenUpdating = False
    Do While Fich <> ""
        Set Wbk = Workbooks.Open("C:\Contacts\" & Fich)
        ThisWorkbook.Sheets("Feuil1").Range("A" & 2 + j & "I" & 51 + j).Value = Wbk.Sheets(1).Range("A2:I51").Value    'Adapte le nom Feuil1 à ta feuille destination
        j = j + 50
        Wbk.Close
        Set Wbk = Nothing
        Fich = Dir
    Loop
    End Sub

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 33
    Par défaut
    Bonjour Mercatog et merci de ta réponse,

    Quand je lance la macro j'obtiens l'erreur 1004 (erreur définie par l'application ou par l'objet) sur la ligne suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ThisWorkbook.Sheets("Feuil1").Range("A" & 2 + j & "I" & 51 + j).Value = Wbk.Sheets(1).Range("A2:I51").Value
    J'ai laissé Feuil1 comme nom de la feuille de destination puisque j'ouvre un fichier Excel vide dans lequel je crée la macro.

    Se peut-il que cela provienne du fait que dans mes fichiers, la feuille n'a pas le même nom dans tous les fichiers (Contacts(1), Contacts(2), Contacts(3), etc...).

    En tout cas, merci encore de ta réponse,

    Pierre

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Erreur dans range
    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
    Sub test3()
    Dim Wbk As Workbook
    Dim Fich As String
    Dim j As Long
     
    Fich = Dir("C:\Contacts\*.xls")
    Application.ScreenUpdating = False
    Do While Fich <> ""
        Set Wbk = Workbooks.Open("C:\Contacts\" & Fich)
        ThisWorkbook.Sheets("Feuil1").Range("A" & 2 + j & ":I" & 51 + j).Value = Wbk.Sheets(1).Range("A2:I51").Value    'Adapte le nom Feuil1 à ta feuille destination
        j = j + 50
        Wbk.Close
        Set Wbk = Nothing
        Fich = Dir
    Loop
    End Sub

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 33
    Par défaut
    Et bien un grand merci puisque je viens de rentrer de vacances et grâce à ta réponse j'ai pu réaliser ce que je souhaitais faire.

    Bonne continuation,

    Pierre

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

Discussions similaires

  1. [XL-2010] Regroupement des fichiers excel selon un critère de nom
    Par nidale dans le forum Excel
    Réponses: 8
    Dernier message: 04/03/2015, 15h53
  2. Concaténer des fichiers Excel dans un seul fichier avec VBA
    Par Thallhos dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 29/06/2014, 21h39
  3. [XL-2003] Fusionner des fichiers Excel en un seul
    Par Vadorblanc dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 04/11/2010, 20h58
  4. Réunir les feuilles des autres fichiers excel dans un seul
    Par P96O1004 dans le forum Macros et VBA Excel
    Réponses: 22
    Dernier message: 09/04/2009, 09h11
  5. regrouper plusieurs fichiers Excel en un seul
    Par jnmab dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/11/2007, 17h40

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