Private Sub CommandButton1_Click()
Dim plage As Range, cel As Range, decal, i As Byte
Application.ScreenUpdating = False
Set plage = Sheets("Synthèse").[B4].CurrentRegion
Set cel = [C5]
decal = Array(4, 1, 0, 2, 3)
Rows("5:" & Rows.Count).Clear 'RAZ
For i = 0 To UBound(decal)
Copie plage.Columns(i + 1), cel.Offset(, decal(i)), i = 0
Next
cel.Offset(, 4) = "Code couleur"
'---supression des lignes vides (facultatif)---
On Error Resume Next
cel.Resize(plage.Rows.Count).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub
Sub Copie(colonne As Range, cel As Range, efface As Boolean)
colonne.Copy cel 'pour copier les formats
cel.Resize(colonne.Rows.Count) = IIf(efface, "", colonne.Value) 'valeurs
End Sub