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 :

VBA - Importer le contenu de différents fichiers Excel vers un unique fiichier


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2015
    Messages : 1
    Par défaut VBA - Importer le contenu de différents fichiers Excel vers un unique fiichier
    Bonjour à tous,

    Je cherche à importer vers un unique fichier les valeurs contenues dans plusieurs fichiers Excel.

    J'aimerais pouvoir importer les données les unes a la suite des autres. C'est a dire que par exemple , les données issues du premier fichier sont copiées de A5 a A45 , et que le second soit copié de A46 à A120.

    Je n'ai trouvé que des codes assez complexes et suis totalement perdu.

    Merci

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Testes le code ci-dessous en ayant au préalable défini le chemin du dossier. Les feuilles cibles sont les premières de chaque classeur (Worksheets(1) feuille la plus à gauche dans les onglets) :
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
     
    Sub Test()
     
        Dim Cls As Workbook
        Dim Fe As Worksheet
        Dim Plage As Range
        Dim Tbl() As String
        Dim I As Integer
        Dim Chemin As String
        Dim DerLigne As Long
     
        'adapter le chemin du dossier où se trouvent les classeurs cibles...
        Chemin = "E:\Dossier\"
     
        'appel de la fonction pour récupérer les noms des classeurs
        Tbl = EnumFichiers(Chemin, ".xls*") 'astérisque si tous les fichiers Excel (.xls, .xlsx, .xlsm, etc...)
     
        'si initialisé (au moins 1 classeur)
        If Not (Not Tbl) Then
     
            'boucle sur le tableau
            For I = 1 To UBound(Tbl)
     
                'ouvre le classeur
                Set Cls = Workbooks.Open(Chemin & Tbl(I))
     
                'défini la plage en colonne A à partir de A1 sur la première feuille du classeur
                With Cls.Worksheets(1): Set Plage = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp)): End With
     
                With ThisWorkbook.Worksheets(1) 'sur la 1ère feuille du classeur
     
                    DerLigne = .Cells(.Rows.Count, 1).End(xlUp).Row + 1  'sur colonne A
                    If DerLigne = 2 And .Range("A1").Value = "" Then DerLigne = 1
                    .Range(.Cells(DerLigne, 1), .Cells(DerLigne + Plage.Rows.Count - 1, 1)).Value = Plage.Value
     
                End With
     
                'referme
                Cls.Close False
     
            Next I
     
        End If
     
    End Sub
     
    Function EnumFichiers(Chemin As String, Extension As String) As String()
     
        Dim TableauFichiers() As String
        Dim Fichier As String
        Dim I As Integer
     
        'complète le chemin le cas échéant
        If Right(Chemin, 1) <> "\" Then Chemin = Chemin & "\"
     
        'récupère seulement les fichiers Excel
        Fichier = Dir(Chemin & "*" & Extension)
     
        'boucle sur les fichiers du dossier
        Do While (Len(Fichier) > 0)
     
            I = I + 1
     
            ReDim Preserve TableauFichiers(1 To I)
     
            TableauFichiers(I) = Fichier
     
            Fichier = Dir()
     
        Loop
     
        'retourne le tableau des noms de fichiers
        EnumFichiers = TableauFichiers()
     
    End Function

  3. #3
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    A condition que le nombre des étiquettes de colonnes soit le même et que l'orthographe du nom de celles-ci soit identique, voici une procédure dans cette contribution Regrouper plusieurs feuilles sur une autre. (2003-2010) et un exemple pour des feuilles se trouvant dans des classeurs différents.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

Discussions similaires

  1. [WD17] importer le contenu d'un fichier excel et autocomplétion
    Par raouf25dz dans le forum WinDev
    Réponses: 2
    Dernier message: 23/08/2015, 17h38
  2. [VBA] Importer une image d'un fichier excel vers un autre
    Par norgepagan dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 21/05/2011, 12h30
  3. Importer des données d'un fichier Excel vers Javascript
    Par rafiq25 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 25/01/2008, 15h30
  4. exporter contenu d'un fichier excel vers base mysql ?
    Par ouldfella dans le forum Requêtes
    Réponses: 5
    Dernier message: 08/03/2007, 10h31
  5. Importer le contenu d'une cellule Excel vers Access
    Par deaqu1 dans le forum Access
    Réponses: 7
    Dernier message: 05/11/2005, 15h26

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