Bonjour,
J'avais fais une macro qui copie colle la colonne en fonction de l'en-tête de la colonne si jamais cela peut t'aider.
Sub Copier_TPS()
Dim nbcol_CalcTPS As Long
Dim nbcol_Erp As Long
Dim nb_lignes As Long
Dim nom As String
Dim i As Long
Dim j As Long
Dim col As String
Sheets("CalcTPS").Cells.Clear
Sheets("Ordre_data").Activate
Sheets("Ordre_data").Rows("7:7").Copy
Sheets("CalcTPS").Activate
Sheets("CalcTPS").Rows("1:1").PasteSpecial Paste:=xlPasteValues
Sheets("ErpTPS").Activate
nbcol_Erp = ActiveSheet.UsedRange.Columns.Count
Sheets("CalcTPS").Activate
nbcol_CalcTPS = ActiveSheet.UsedRange.Columns.Count
Sheets("CalcTPS").Activate
For i = 1 To nbcol_CalcTPS
nom = Sheets("CalcTPS").Cells(1, i)
For j = 1 To nbcol_Erp
Sheets("ErpTPS").Activate
If Sheets("ErpTPS").Cells(1, j) = nom Then
Sheets("ErpTPS").Columns(j).Copy
Sheets("CalcTPS").Activate
Sheets("CalcTPS").Columns(i).PasteSpecial Paste:=xlPasteValues
Exit For
Else
End If
Next j
Next i
End Sub
En gros je fais une boucle sur la ligne qui contient les bons en-têtes et dans le bon ordre et je colle la colonne des que je le retrouve sur mon autre feuille. (Il y a beaucoup de "Activate" tu peux les supprimer c'était mes débuts en VBA)
Cdt