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 !!!!!!!

Rechercher des sujets similaires à "macro compilation"