Ryu,
Avec ton code:
- on perd le tableau structuré;
- on perd les formules;
- les dates sont copiées en texte et plus en date;
- on perd les formats;
- le code n'est pas circonscrit à une plage précise mais prend toute la zone utilisée de la feuille;
- on doit modifier plusieurs valeurs (la liste des colonnes, la valeur derrière ROW, la cellule d'arrivée si on n'est pas en A1).
Dans ces conditions, c'est clair que pour un débutant VBA, c'est loin d'être simple et il a intérêt à tester sur une copie de son classeur... ^^
:calim2:
Code utilisé (celui du message 12, après avoir adapté ROW(1: et la liste des colonne)
Code:
1
2
3
4
5
6
7
8
9
10 Sub Demo() Dim VA Application.ScreenUpdating = False With Sheets(1).UsedRange VA = Application.Index(.Value, Evaluate("ROW(1:" & .Rows.Count & ")"), [{3,2,1,5,4}]) 'mettre les colonnes que l'on veut dans l'ordre voulues .Clear .Range("A1").Resize(UBound(VA, 1), UBound(VA, 2)) = VA End With Application.ScreenUpdating = True End Sub