Regrouper plusieurs fichiers excel ayant 2 colonnes en un seul

linfoge Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   -  
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   -
bonsoir
j'ai une centaine de fichiers excel avec 2 colonnes
j'aimerais récupérer à chaque fois la 2e colonne et toutes ces colonnes les mettre dans un fichier global
par exemple
mon fichier1 il y a colonne : A et B
mon fichier2 il y a colonne: A' et B'
J'aimerais un fichier global avec 2 colonnes B et B'

S'il vous plait
merci d'avacne

3 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

Oui... et ?

Qu'as tu essayé ? Sur quoi bloques tu exactement ?
Les fichiers se trouvent dans le même dossier ?

Sachant que ce genre de question est déjà posée des millions de fois sur ce forum et d'autres.... tu devrais trouver sans mal la réponse à ta question.

Reviens nous voir si tu rencontres des difficultés en expliquant ce que tu auras essayé et avec le code à l’Appui.

NB: Pour poster ton code sur le forum, tu devras utiliser les balises de code
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

?
0
linfoge Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
bonjour,
oui en effet j'ai trouvé plusieurs forum avec cette question mais je n'arrive pas à résoudre le mien c'est pour cela que j'ai proposer la mienne si quelqu'un peut m'aider personnellement

j'ai essayé ce code qui me semblait etre la solution de mon problème, j'ai changé juste le repertoire et le numero de la ligne que je veux copier soit la ligne : Set rng = wbk.Worksheets(1).UsedRange.Columns(2)

Public Sub Regrouper_Fichiers()
' regroupe dans les colonnes de la feuille 1 d'un fichier,
' la colonne A de chaque fichier excel d'un répertoire.
'
Dim fso As Object 'Système de fichiers
Dim rep As Object 'Répertoire
Dim cfr As Object 'Collection de fichiers du répertoire
Dim fic As Object 'Fichier (élément de la collection cfr)
Dim wbk As Workbook 'Classeur
Dim res As Workbook 'Classeur resultat
Dim rng As Range 'Plage de cellules
Dim dst As Range 'Cellule de destination
Dim pth As String 'Chemin du répertoire

' Définir le répertoire à lire
pth = "D:\TEMP"
' Créer le fichier résultat
Set res = Workbooks.Add(xlWBATWorksheet)
Set dst = res.Worksheets(1).Range("A1")
' Lecture du répertoire
Set fso = CreateObject("Scripting.FileSystemObject")
Set rep = fso.GetFolder(pth)
Set cfr = rep.Files
' Contrôler chaque fichier du répertoire
For Each fic In cfr
' - Vérifier s'il s'agit d'un fichier Excel...
If StrComp(fso.GetExtensionName(fic.Name), "xlsx", vbTextCompare) = 0 Then
' ... dans l'affirmative, ouvrir le fichier et mettre à jour les liaisons
Set wbk = Workbooks.Open(Filename:=pth & "\" & fic.Name, UpdateLinks:=xlUpdateLinksAlways)
' Placer le nom du fichier en titre de colonne résultat
dst.Value = fic.Name
' Copier la colonne en dessous
Set rng = wbk.Worksheets(1).UsedRange.Columns(2)
rng.Copy dst.Offset(1)
' Fermer le fichier sans le modifier
wbk.Close False
' Destination sur colonne suivante
Set dst = dst.Offset(0, 1)
End If
Next fic

End Sub

Mais malgré ça ça ne fonctionne pas...
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour, tu donnes très peu d'informations utiles.
je comprends que tu as un fichier, que tu appelles "global", dans lequel tu veux recopier (où, quel onglet, quelle position?) une colonne (laquelle, quel onglet, quelle position?) se trouvant dans des fichiers (lesquels, où, quels noms?).
le fichier global est-il vide au départ? quand cela va-t'il s'exécuter?
0
linfoge Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
bonjour,
je pars de plusieurs fichiers contenant chacun 2 colonnes dans la feuil1
tous ces fichiers sont dans le même dossier
le fichier global est vide oui
j'ai mis mon code dans la partie vba du fichier global vide et lorsque je l'execute il me cree un fichier vide renommé feuil1
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
tu écris que tu veux copier dans un fichier existant, alors pourquoi créer le fichier résultat?
je suggère de remplacer ceci:
' Créer le fichier résultat
Set res = Workbooks.Add(xlWBATWorksheet)
par cela:
' Utiliser le fichier contenant le code VBA comme fichier résultat
Set res = ThisWorkbook
0
linfoge Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
je vais changer ça merci
0
linfoge Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
et je vous retiens au courant
0
linfoge Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
lorsque je change cette ligne et que j'execute mon code rien n'apparait
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > linfoge Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
quelques conseils généraux pour analyser le comportement d'un code: https://www.commentcamarche.net/contents/1381-debogage
0
linfoge Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
mais lorsque je lance le programme il s’exécute et aucune erreur s'affiche
c'est juste qu'il ne me fait rien
0