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
| Sub Archivage2()
'ici on change le format pour qu'Excel reconnaisse les Dates.
Sheets("List").Select
Rows("1:1").Select
Selection.Delete Shift:=xlUp
Cells.Replace What:="Date : ", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Columns("B:B").Select
Selection.TextToColumns Destination:=Range("B1"), DataType:=xlDelimited, _
TextQualifier:=xlNone, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(1, 4), TrailingMinusNumbers:=True
'ici c'est un simple copier coller a partir de la 1st ligne vide
Sheets("List").Select
Range("A1:I50").Select
Selection.Copy
Sheets("Archive").Select
Range("A65000").End(xlUp).Offset(0).Select 'on cherche la 1st ligne vide
'(le chiffre dans "offset" correspond au décalage par rapport a la ligne trouvée,
'si on met 1 par exemple la liste sera collée en laissant 1 ligne vide)
ActiveSheet.Paste
'ici on classe les date pour avoir les plus récentes en haut et supprimer les plus anciennes
' grâce au gestionnaire de doublons
Columns("B:B").Select
ActiveWorkbook.Worksheets("Archive").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Archive").Sort.SortFields.Add Key:=Range("B1"), _
SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Archive").Sort
.SetRange Range("A1:F100")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Columns("A:I").Select
ActiveSheet.Range("$A$1:$I$100").RemoveDuplicates Columns:=1, Header:=xlNo
End Sub |