Bonjour,
Bonjour Dan,
Une autre proposition (à l'identique !?).
Cdlt.
Public Sub archiver()
Dim ws As Worksheet
Dim plage As Range, lo As ListObject, r As Range
Dim NumCde As Long, DateCde As Date, DerLig As Long
Set ws = Worksheets("Bon")
Set lo = Range("T_Archives").ListObject
If Not IsEmpty(ws.Range("C22")) Then
With ws
NumCde = .Range("C6").Value
DateCde = .Range("H6").Value
DerLig = .Cells(.Rows.Count, "C").End(xlUp).Row
Set plage = .Range("C22:H" & DerLig)
End With
With lo
If .InsertRowRange Is Nothing Then
Set r = .HeaderRowRange.Cells(1).Offset(.ListRows.Count + 1)
Else
Set r = .InsertRowRange.Cells(1)
End If
End With
r.Offset(, 2).Resize(plage.Rows.Count, 6).Value = plage.Value
r.Resize(plage.Rows.Count).Value = NumCde
r.Offset(, 1).Resize(plage.Rows.Count).Value = DateCde
With lo
.Sort.SortFields.Add Key:=.ListColumns(1).DataBodyRange, Order:=xlDescending
.Sort.Header = xlYes
.Sort.Apply
.Sort.SortFields.Clear
End With
ws.Range("C6").Value = ws.Range("C6")
End If
End Sub