Salut Skearns,
premier jet...
La macro démarre à l'ouverture du fichier et remet les colonnes dans l'ordre indiqué dans 'Attribut'.
Private Sub Workbook_Open()
'
Dim tTab
'
Application.ScreenUpdating = False
'
With Worksheets("Attribut")
tTab = .Range("A1:A" & .Range("A" & Rows.Count).End(xlUp).Row).Value
End With
With Worksheets("Data")
For x = 1 To UBound(tTab, 1)
For y = 1 To .Cells(1, Columns.Count).End(xlToLeft).Column
If .Cells(1, y) = tTab(x, 1) And y <> x Then _
.Columns(x).Insert shift:=xlToRight: _
.Columns(y + 1).Cut .Columns(x): _
.Columns(y + 1).Delete shift:=xlToLeft
Next
Next
End With
'
Application.ScreenUpdating = True
'
End Sub
- Je pense comprendre qu'il faut également vérifier la correspondance orthographique des colonnes !?
Comment, sur quelles bases? Supposons qu'il y ait des fautes à chaque mot, je ne vois pas comment faire...
- si il y a des colonnes absentes dans 'Data', j'imagine qu'il faut les créer ? À confirmer !
Si oui, fichier-exemple, stp...
Pour tester le code, mélange les colonnes de ce fichier, enregistre et quitte puis ré-ouvre.
A+