Option Explicit
Sub Pompage()
'---------------------------------- POMPAGE
' ----- PROGRAMME DE POMPAGE
Const Repert = "D:\PANNEAU\RESEAUX\EN COURS\" 'MODIFIER LE DOSSIER A POMPER
Const LigneDepart = 2
Dim LesFichiers, i, rep As String
Dim Fichier As String, Ligne As Long
Application.ScreenUpdating = False
ThisWorkbook.Sheets("POMPAGE").Activate 'SHEETS CIBLE
If Right(Repert, 1) <> "\" Then rep = Repert & "\" Else rep = Repert
Ligne = LigneDepart
Fichier = Dir(rep & "*.xlsx") 'FORMAT DE FICHIER
Do While Fichier <> ""
If Not IsArray(LesFichiers) Then
ReDim LesFichiers(1 To 1)
Else
ReDim Preserve LesFichiers(1 To UBound(LesFichiers) + 1)
End If
LesFichiers(UBound(LesFichiers)) = rep & Fichier
Fichier = Dir
Loop
Ligne = LigneDepart
With ThisWorkbook.Sheets("POMPAGE")
.Range("A" & Ligne & ":A" & .Rows.Count).Clear
If Not IsArray(LesFichiers) Then Exit Sub
.Range("A" & Ligne).Resize(UBound(LesFichiers)).Value = Application.Transpose(LesFichiers)
.Range("A" & Ligne).Resize(UBound(LesFichiers)).Sort key1:=.Range("A" & Ligne), Header:=xlNo
LesFichiers = .Range("A" & LigneDepart).Resize(UBound(LesFichiers)).Value
.Range("A" & Ligne & ":A" & .Rows.Count).Clear
End With
For i = LBound(LesFichiers) To UBound(LesFichiers)
Workbooks.Open LesFichiers(i, 1)
ActiveWorkbook.ActiveSheet.Rows(60).Copy 'LIGNE 60 A POMPER
ThisWorkbook.Sheets("POMPAGE").Rows(Ligne).PasteSpecial Paste:=xlPasteValues
Application.DisplayAlerts = False
ActiveWorkbook.Close Savechanges:=False
Application.DisplayAlerts = True
Ligne = Ligne + 1
Next i
Application.CutCopyMode = False
Application.Goto Range("A" & IIf(LigneDepart = 1, 1, LigneDepart - 1)), True
Application.ScreenUpdating = True
'---------------------------------------- DEPLACEMENT DES LIGNES
'Selection de la plage à copier
Sheets("POMPAGE").Range("A2:Q999").Copy
'Sélection de la cellule de debut de copie
Sheets("LISTING").Activate
Sheets("LISTING").Range("a65536").End(xlUp).Offset(1, 0).Select
'Collage de la plage de cellule
ActiveSheet.Paste
'retour POMPAGE
Sheets("POMPAGE").Activate
Sheets("POMPAGE").Range("A2:Q999").ClearContents
Sheets("LISTING").Activate
Sheets("LISTING").[A1].Select
MsgBox "LIGNE COPIER DANS LISTING"
End Sub