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
| Option Explicit
Sub liste()
Dim Mini As Date, Maxi As Date, D As Date
Dim lig As Long, Id As Long
Mini = WorksheetFunction.Min(ListObjects(1).DataBodyRange.Columns(2), ListObjects(1).DataBodyRange.Columns(3))
Maxi = WorksheetFunction.Max(ListObjects(1).DataBodyRange.Columns(2), ListObjects(1).DataBodyRange.Columns(3))
lig = 1
With Worksheets("Feuil2")
.Range("A:B").ClearContents
.Range("A1") = "ID"
.Range("B1") = "Date"
For D = Mini To Maxi
For Id = 1 To ListObjects(1).DataBodyRange.Rows.Count
If D >= ListObjects(1).DataBodyRange.Columns(2).Cells(Id, 1) And D <= ListObjects(1).DataBodyRange.Columns(3).Cells(Id, 1) Then
.Range("A1").Offset(lig, 0) = ListObjects(1).DataBodyRange.Columns(1).Cells(Id, 1)
.Range("A1").Offset(lig, 1) = D
lig = lig + 1
End If
Next Id
Next D
'Tri
With .Sort
.SortFields.Clear
.SortFields.Add Key:=Range("A:A") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.SortFields.Add Key:=Range("B:B") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.SetRange Range("A:B")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.Apply
End With
.Columns("B:B").NumberFormat = "m/d/yyyy"
End With
End Sub |
Partager