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
| Option Explicit
Public Sub test()
copieAnnee 2010, 2011
End Sub
Public Sub copieAnnee(ByVal anneeSource As Integer, ByVal anneeCopie As Integer)
Dim firstRow, lastRow, corresRow, i As Integer
Dim rg As Range
Set rg = Worksheets("Feuil1").Range("A:A")
Dim dt As Date
firstRow = WorksheetFunction.Match(CDbl(DateSerial(anneeSource, 1, 1)), rg, 1)
lastRow = WorksheetFunction.Match(CDbl(DateSerial(anneeSource, 12, 31)), rg, 1)
If Year(rg.Cells(firstRow, 1)) < anneeSource Then firstRow = firstRow + 1
For i = firstRow To lastRow
dt = rg.Cells(i, 1).Value
On Error Resume Next
corresRow = WorksheetFunction.Match(CDbl(DateAdd("yyyy", 1, dt)), rg, 0)
If Err.Number = 0 Then
rg.Cells(corresRow, 1).Offset(0, 1).Value = rg.Cells(i, 1).Offset(0, 1).Value
End If
On Error GoTo 0
Next i
End Sub |
Partager