Exportation données (colonnes)

miha

XLDnaute Nouveau
Bonjour à tous,
Je souhaite extraire une colonne d'adresse identique (ou à partir de son entête) de plusieurs fichier excel (chemin de répertoire identique), et de les coller une après l'autre (dans l'ordre de parcours des fichiers : F1 colonne 1 , F2 colonne 2 ......) dans un nouveau fichier tab.xls .
Merci d'avance
 

Staple1600

XLDnaute Barbatruc
Bonjour, le fil, le forum

@miha [Bienvenue sur le forum]
Sur la plupart des forums (notamment les angophones), il est apprécié de signaler par un lien le fait qu'on pose sa question sur plusieurs forums.
https://forum.excel-pratique.com/viewtopic.php?f=2&t=104896&sid=08debb34674ec18ac506751471cbbe31

Et pour résoudre une question, c'est toujours un plus quand le demandeur joint un fichier exemple.

Pour ce faire, il suffit de cliquer sur le bouton: Téléverser un fichier.

PS: Pour ta gouverne (ou pour éclairer ta lanterne) ;)
https://fr.wikipedia.org/wiki/Multipostage
 

Staple1600

XLDnaute Barbatruc
Re

Tu ne peux pas joindre un fichier exemple anonymisé??
(afin qu'on puisse voir sa structure)

Sinon il y a dans les archives du forum, de nombreux fils qui expliquent comment compiler plusieurs classeurs dans un classeur maître.

Ces exemples sont accessibles en cliquant sur la loupe en haut à droite.
 

miha

XLDnaute Nouveau
Pour l'exemple, je pense que ce code (source internet) est un bon début. Mais pour la partie paste, il faut la développer.

Sub importDonnees()
Dim principal As ThisWorkbook
Dim repertoire As String, fichier As String
Application.ScreenUpdating = False
Set principal = ThisWorkbook
repertoire = "C:\donnees"
ChDir repertoire
fichier = Dir("*.xls")
Do While fichier <> ""
If fichier <> principal.Name Then

Workbooks.Open fichier
On Error GoTo suivant
With Sheets("synth")
On Error GoTo 0
On Error Resume Next
.[A:A].SpecialCells(xlCellTypeBlanks).EntireRow.Delete
.[A:A].Insert Shift:=xlToRight
.Range("A1:A" & .[b65536].End(xlUp).Row) = Left(fichier, Len(fichier) - 4)
.UsedRange.EntireRow.Copy Destination:=principal.Sheets(1).[a65536].End(xlUp).Offset(1)
End With
ActiveWorkbook.Close False
End If
If Err.Number = 9 Then MsgBox "Pas de feuille ""synth"" dans le fichier " & fichier, vbExclamation: ActiveWorkbook.Close False
fichier = Dir
Loop
End Sub
 

Staple1600

XLDnaute Barbatruc
Re,

Ok alors je te laisse adapter ceci ;)
(test OK sur mon PC)
VB:
Sub Combiner_WBK()
'miha - 050218
Dim p As Range, Filename$, j
Path = ThisWorkbook.Path & "\"
j = 1
Filename = Dir(Path & "*.xlsx")
Application.ScreenUpdating = False
Do While Filename <> ""
Set wb = Workbooks.Open(Filename:=Path & Filename, ReadOnly:=True)
Set p = Intersect(wb.Sheets(1).[A1].EntireColumn, wb.Sheets(1).UsedRange)
p.Copy ThisWorkbook.Sheets(1).Cells(1, j)
j = j + 1
Set p = Nothing
wb.Close False
Filename = Dir()
Loop
End Sub
 

Discussions similaires

Réponses
7
Affichages
286

Statistiques des forums

Discussions
312 177
Messages
2 085 977
Membres
103 078
dernier inscrit
diomy