Macro Compilation
Hello,
J'ai un petit problème, voila je me sers d'une macro pour concaténer plusieurs fichier dans un seul.
Voici le code, sauf que j'aimerais copier que les donnes a partir de A2 et non de A1 car sur la ligne 1 se trouve les informations du tableau dans tous les fichiers. Par conséquent cela copie plusieurs fois les infos du tableau et cela est assez gênant.
Entity name First name Full name Work ID Location Departement
Entity name First name Full name Work ID Location Departement
US56601 ROSE Beville ROSE Beville Moorpark SFC Finance
Entity name First name Full name Work ID Location Departement
US5601 Del Castillo Corina Del Castillo Corina Moorpark MBCFinance
Sub Compilation()
Dim Temp As String
Dim Ligne As Long
Temp = Dir(ActiveWorkbook.Path & "\*.xls")
Application.DisplayAlerts = False
Do While Temp <> ""
If Temp <> "Recap.xls" Then
Workbooks.Open ActiveWorkbook.Path & "\" & Temp
Workbooks(Temp).Sheets(1).Range("A1").CurrentRegion.Copy
Workbooks("Recap.xls").Sheets(1).Activate
Ligne = Sheets(1).Range("A65536").End(xlUp).Row + 1
Range("A" & CStr(Ligne)).Select
ActiveSheet.Paste
Workbooks(Temp).Close
End If
Temp = Dir
Loop
Range("A1").Select
Application.DisplayAlerts = True
End Sub
J'ai beau vouloir modifier cette ligne = Workbooks(Temp).Sheets(1).Range("A1").CurrentRegion.Copy mais le résultat n'est pas la je comprends pas trop le principe de currentregion.
Je vous remercie de pour votre aide,
Bonjour,
Tu peux essayer comme ça :
Sub Compilation()
Dim Temp As String
Dim Ligne As Long
Temp = Dir(ActiveWorkbook.Path & "\*.xls")
Application.DisplayAlerts = False
Do While Temp <> ""
Ligne = Workbooks("Recap.xls").Sheets(1).Range("A65536").End(xlUp).Row + 1
If Temp <> "Recap.xls" Then
Workbooks.Open ActiveWorkbook.Path & "\" & Temp
Workbooks(Temp).Sheets(1).Range("A1").CurrentRegion.Copy Workbooks("Recap.xls").Sheets(1).Range("A" & Ligne)
Workbooks(Temp).Close
Workbooks("Recap.xls").Sheets(1).Rows(Ligne).Delete
End If
Temp = Dir
Loop
Range("A1").Select
Application.DisplayAlerts = True
End Sub
A+
Bonjour vessfils,
bonjour galopin01,
Si j'ai bien compris, tu souhaites que la première ligne ne soit pas copiée.
Essaie comme cela :
Sub Compilation()
Dim Temp As String
Dim Ligne As Long
Dim PlageCopie As Range
Dim WsC As Worksheet
Temp = Dir(ActiveWorkbook.Path & "\*.xls")
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Set WsC = Workbooks("Recap.xls").Sheets(1)
Do While Temp <> ""
If Temp <> "Recap.xls" Then
Workbooks.Open ActiveWorkbook.Path & "\" & Temp
Set PlageCopie = Workbooks(Temp).Sheets(1).Range("A1").CurrentRegion
Ligne = WsC.Range("A" & Rows.Count).End(xlUp).Row + 1
PlageCopie.Offset(1).Resize(PlageCopie.Rows.Count - 1).Copy Range("A" & CStr(Ligne))
Workbooks(Temp).Close
Set PlageCopie = Nothing
End If
Temp = Dir
Loop
Range("A1").Select
Application.DisplayAlerts = True
Set WsC = Nothing
End Sub
A+
Merci ça marche au TOP !!!!!!!