Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
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
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
Ce site utilise des cookies pour personnaliser le contenu, adapter votre expérience et vous garder connecté si vous vous enregistrez.
En continuant à utiliser ce site, vous consentez à notre utilisation de cookies.