Bonjour Fredo025
Voici ton code légèrement optimisé (pas besoin des select)
Private Sub CommandButton1_Click()
Dim Lig As Long
' Définir la ligne sélectionnée
Lig = ThisWorkbook.Sheets("Budget").Range("A19").End(xlDown).Row
If Lig = 33 Then
MsgBox "Aucun résultat à copier"
Exit Sub
End If
'Selection des colonnes à mettre dans historique
Cells(36, 1).EntireRow.Insert Shift:=xlDown
Range("B1").Copy
Range("A36").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Range("A16").Copy
Range("B36").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Range("B16:C16").Copy
Range("C36").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Range("A" & Lig & ":D" & Lig).Copy
Range("D36").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Range("F" & Lig).Copy
Range("H36").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Range("G" & Lig).Copy
Range("I36").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Range("C7").Copy
Range("J36").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Range("J" & Lig).Copy
Range("K36").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Range("C8").Copy
Range("L36").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Range("B9").Copy
Range("M36").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Range("B11").Copy
Range("N36").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Range("B13").Copy
Range("O36").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
'Conversion au format date voulue
Range("A36").NumberFormat = "dd/mm/yyyy hh:mm:ss"
'Tri : montant ou descendant (ascending or descending)
With ThisWorkbook.Worksheets("Budget")
With .ListObjects("Tableau2").Sort
With .SortFields
.Clear
.Add2 Key:=Range("Tableau2[Date]"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
End With
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End With
End Sub
A+