Si vos colonnes ont des entêtes précises, il est possible de faire une boucle vérifiant les entêtes de chaque colonne et de copier la colonne entière si le test est vrai.
Comme les colonnes ne sont pas successives, un copier coller pour chaque groupe de colonnes côte à côte est nécessaires.
voici une macro te permettant de copier coller des valeur d'un classeur à un autre :
Dim classeur as Workbook
set classeur = Application.workbook.open(chemin du classeur contenant les données)
cpt = 1
for colonne = 1 to range("A1").end(xlToRight).Column
if cells(1,colonne) = "entête de la colonne cherchée" then
range(cells(1,colonne),cells(range(cells(1,colonne)).end(xlDown).rows,colonne)).copy
application.workbooks("nom du classeur où les données doivent être copiées").activate
sheets("nom de la feuille où les données doivent être copiées").select
range(cells(1,cpt)).paste
cpt = cpt + 1
classeur.activate
end if
next colonne
dans l'idéal, il faudrait stocker les noms des entêtes de colonnes dans un tableau et vérifier dans le if si la valeur de la cellule active est présente dans le tableau. Comme je ne connais pas la tête de ton fichier, je peux difficilement faire une macro plus précise.