1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| Option Explicit
Sub TRANSFERT()
Dim Chemin As String, Presta As String, Suivi As String
Dim Ws As Worksheet, Wsd As Worksheet
Dim LastLig As Long, NewLig As Long
Dim Wbk As Workbook
Dim k As Byte
Dim Tb
Application.ScreenUpdating = False
Chemin = ThisWorkbook.Path & "\"
Tb = Array("presta1", "presta2")
Set Ws = ThisWorkbook.Worksheets(1)
For k = LBound(Tb) To UBound(Tb)
Presta = Chemin & Tb(k) & ".xls"
If Dir(Presta) <> "" Then
With Ws
.AutoFilterMode = False
LastLig = .Cells(.Rows.Count, "D").End(xlUp).Row
.Range("D1:E" & LastLig).AutoFilter Field:=1, Criteria1:=Tb(k)
.Range("D1:E" & LastLig).AutoFilter Field:=2, Criteria1:="erreur"
If .Range("D1:D" & LastLig).SpecialCells(xlCellTypeVisible).Count > 1 Then
Set Wbk = Workbooks.Open(Presta)
Set Wsd = Wbk.Worksheets(1)
NewLig = Wsd.Cells(Wsd.Rows.Count, 1).End(xlUp).Row + 1
With .Rows("2:" & LastLig).SpecialCells(xlCellTypeVisible)
.Copy Wsd.Cells(NewLig, 1)
.Delete
End With
Set Wsd = Nothing
Wbk.Close True
End If
.AutoFilterMode = False
End With
End If
Next k
Set Ws = Nothing
Suivi = Chemin & "Suivi_" & Format(Date, "yyyymmdd")
Application.DisplayAlerts = False
ThisWorkbook.SaveAs Suivi, xlOpenXMLWorkbookMacroEnabled
Application.DisplayAlerts = True
MsgBox "Traitement terminé"
End Sub |
Partager