Sub ordonnerSelon()
Dim dercol&, i&, ncol&
Application.ScreenUpdating = False
dercol = Sheets("Feuille2").Cells(1, Columns.Count).End(xlToLeft).Column
On Error Resume Next
For i = 1 To dercol
ncol = Application.Match(Sheets("Feuille2").Cells(1, i).Value, Sheets("Feuill1").Rows(1), 0)
If IsNumeric(ncol) And ncol <> i Then
Sheets("Feuill1").Columns(ncol).Cut
Sheets("Feuill1").Columns(i).Insert Shift:=xlToRight
End If
Next i
End Sub
Merci pour ton aide ça fonctionne !Bonjour @hamid43 ,
Voir la macro ci-dessous dans module1:
VB:Sub ordonnerSelon() Dim dercol&, i&, ncol& Application.ScreenUpdating = False dercol = Sheets("Feuille2").Cells(1, Columns.Count).End(xlToLeft).Column On Error Resume Next For i = 1 To dercol ncol = Application.Match(Sheets("Feuille2").Cells(1, i).Value, Sheets("Feuill1").Rows(1), 0) If IsNumeric(ncol) And ncol <> i Then Sheets("Feuill1").Columns(ncol).Cut Sheets("Feuill1").Columns(i).Insert Shift:=xlToRight End If Next i End Sub
nota : en espérant que cela fonctionne car mon Excel est orienté de la gauche vers la droite contrairement au votre. Cela pourrait peut-être avoir une influence sur les constantes xlToleft et xlToRight. Je ne sais pas. A vous de tester.