Bonjour,
Une boucle For Each... Next a pour objet de parcourir tous les objets d'une collection d'objets...
La syntaxe est du type For Each x(variable objet) In CollectiondesObjetsx...
col est donc nécessairement une variable objet, un objet Range, visant plus particulièrement à cibler une colonne.
ColDest est nécessairement une collection d'objets Range, donc vraisemblablement un objet Range lui-même.
Pour qu'il renvoie une collection de colonnes, vu la diversité des objets de type Range, il serait certainement bon de le forcer un peu à renvoyer des objets Range représentant des colonnes par : ColDest.Columns...
En écrivant à la suite Range(col & 1....), col est utilisé comme variable de type String, ce qui est naturellement incompatible avec son statut de variable objet dans la boucle...
Sous réserve d'autres erreurs, en l'absence des déclarations de variables et de leurs initialisations, on pourrait donc écrire :
i = 0
For Each col In ColDest.Columns '---> Recopie des colonnes
col.Resize(Fdép.Cells(Rows.Count, col.Column).End(xlUp).Row).Copy
Range("A1").Offset(0, i).PasteSpecial xlPasteAll
i = i + 1
Next col
Nous devons évidemment trouver en amont les déclarations : Dim col As Range, ColDest As Range [et initialisée avec une référence de plage multicolonnes], Fdép As Worksheet [et initialisée avec une référence de feuille]
Cordialement