XL 2016 Aide pour données de plusieurs fichiers

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

LudoM28

XLDnaute Nouveau
Bonjour à tous. je possède 4 fichiers excel,(recap, A,B,C)dans les fichiers A,B et C il y a des valeurs dans la colonne B. Dans le fichier recap, je voudrais que les valeurs du fichier A soit automatiquement reporté dans la colonne B du fichier recap, les valeurs du fichiers B dans la colonne C du fichier recap et les valeur du fichier C dans la colonne D du fichier recap.
J’espère avoir été assez clair, merci d'avance
 
Bonjour Ludo, et bienvenu sur XLD,
Un petit fichier test représentatif des données aurait été le bienvenu.
Un essai en PJ avec ces hypothèses :
1- Tous les fichiers sont dans le même dossier
2- La macro traite tous les fichiers excepté le fichier Recap
3- Les données sont toujours dans la feuille 1 des fichiers ABC
4- La page de recap est effacé avant la copie
5- Les fichiers ABC sont de type xlsx
Sinon il faut adapter cette macro :
Code:
Sub CopieFichiers()
    Dim Chemin$, Fichier$, Col%
    Chemin = ThisWorkbook.Path & "\"                                    'Tous les fichiers sont dans le même dossier
    Col = 2                                                             ' La copie commencera en colonne B
    [A1:D1000].ClearContents                                            ' On efface la feuille
    Application.ScreenUpdating = False                                  ' On fige l'écran (plus rapide)
    Fichier = Dir(Chemin & "*.xls*")                                    'Boucle sur tous les fichiers xls du répertoire.
    Do While Len(Fichier) > 0                                           ' T ant qu'il y a des fichiers
        If Left(Fichier, 5) <> "Recap" Then                             ' Sauf fichier Recap qui est le fichier ouvert de synthèse
            Workbooks.Open Chemin & Fichier                             ' On ouvre le fichier
            DL = [A100000].End(xlUp).Row                                ' On recherche la dernière ligne occupée
            T = Sheets(1).Range("A1:A" & DL)                            ' On récupère les données ligne 3
            ActiveWorkbook.Close Savechanges:=False                     ' On ferme le fichier sans l'enregistrer
            Cells(1, Col).Resize(DL, 1).Value = T                       ' On restitue les données
            Col = Col + 1                                               ' Fichier suivant
        End If
        Fichier = Dir()
    Loop
End Sub
 

Pièces jointes

Bonjour Ludo, et bienvenu sur XLD,
Un petit fichier test représentatif des données aurait été le bienvenu.
Un essai en PJ avec ces hypothèses :
1- Tous les fichiers sont dans le même dossier
2- La macro traite tous les fichiers excepté le fichier Recap
3- Les données sont toujours dans la feuille 1 des fichiers ABC
4- La page de recap est effacé avant la copie
5- Les fichiers ABC sont de type xlsx
Sinon il faut adapter cette macro :
Code:
Sub CopieFichiers()
    Dim Chemin$, Fichier$, Col%
    Chemin = ThisWorkbook.Path & "\"                                    'Tous les fichiers sont dans le même dossier
    Col = 2                                                             ' La copie commencera en colonne B
    [A1:D1000].ClearContents                                            ' On efface la feuille
    Application.ScreenUpdating = False                                  ' On fige l'écran (plus rapide)
    Fichier = Dir(Chemin & "*.xls*")                                    'Boucle sur tous les fichiers xls du répertoire.
    Do While Len(Fichier) > 0                                           ' T ant qu'il y a des fichiers
        If Left(Fichier, 5) <> "Recap" Then                             ' Sauf fichier Recap qui est le fichier ouvert de synthèse
            Workbooks.Open Chemin & Fichier                             ' On ouvre le fichier
            DL = [A100000].End(xlUp).Row                                ' On recherche la dernière ligne occupée
            T = Sheets(1).Range("A1:A" & DL)                            ' On récupère les données ligne 3
            ActiveWorkbook.Close Savechanges:=False                     ' On ferme le fichier sans l'enregistrer
            Cells(1, Col).Resize(DL, 1).Value = T                       ' On restitue les données
            Col = Col + 1                                               ' Fichier suivant
        End If
        Fichier = Dir()
    Loop
End Sub
Je te remercie beaucoup pour cette macro, cela semble bien correspondre a ma recherche je regarde pour l'adapter a mon fichier réel, et au besoin je te recontacte. Encore mille merci
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Souci de copie
Réponses
8
Affichages
69
Réponses
5
Affichages
478
D
  • Question Question
Réponses
1
Affichages
38
Réponses
4
Affichages
84
  • Question Question
Microsoft 365 comptage d'heures
Réponses
6
Affichages
461
Retour