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 49
| Option Explicit
Sub Copie()
Dim Wbk As Workbook
Dim Ws As Worksheet
Dim Chemin As String
Dim ligne As Long
Dim I As Integer
Dim N As Integer
Dim JourSem As Integer
Application.ScreenUpdating = False
Chemin = "C:\CopieTest.xlsx"
If Dir(Chemin) <> "" Then
Set Wbk = Workbooks.Open(Filename:=Chemin, UpdateLinks:=False)
With Wbk.Worksheets(1)
JourSem = Application.Weekday(Date, 2)
ligne = .Cells(.Rows.Count, "A").End(xlUp).Row 'supprime les données du jour
For I = ligne To 1 Step -1
For N = 1 To 5
If Cells(I, 1).Value = Date - JourSem + N Then
Cells(I, 1).EntireRow.Delete
End If
Next N
Next I
JourSem = Application.Weekday(Date, 2)
For Each Ws In ThisWorkbook.Worksheets 'copie les données du jour
For I = 1 To 5
If Ws.Name = Format(Date - JourSem + I, "dd-mm-yyyy") Then 'recherche les onglets avec la date du jour
ligne = Ws.Range("A" & Range("A:A").Rows.Count).End(xlUp).Row
Ws.Range("A1:B" & ligne).Copy
.Range("A1").Insert Shift:=xlDown
End If
Next I
Next Ws
End With
'Wbk.Close True
Set Wbk = Nothing
Else
MsgBox "Fichier " & Chemin & " inexistant"
End If
End Sub |