bonjour
Voici un code basé sur un tableau source et un tableau destination, et qui marche dans beaucopu de cas de figure
quelques variables à positionner suivant les cas
Public source, dest, colsource, coldest, lignedest, lignesource
Sub copiecolonnes()
colsource = Array(1, 2, 3)
coldest = Array(3, 4, 5)
Set source = Sheets("perf 3x500") 'feuille source
Set dest = Sheets("récap") ' feuille destination
lignesource = 3 'première ligne de la source
lignedest = 2 'Première ligne pour la destination
raz
For n = 0 To UBound(colsource)
Call macopie(colsource(n), coldest(n))
Next
With dest.UsedRange.Columns(5) 'traite la colonne5
For Each i In .Rows
If IsNumeric(i) = True Then i.Value = i.Value * 12
Next
End With
dest.Columns(3).NumberFormat = "dd/mm/yyy" 'traite la colonne3
dest.Activate
End Sub
Sub macopie(s, d)
With source
Set zonesource = .Range(.Cells(lignesource, s), .Cells(.Cells(lignesource, s).End(xlDown).Row, s))
zonesource.Copy
dest.Cells(lignedest, d).PasteSpecial (xlValue)
End With
End Sub
Sub raz()
With dest
Set zone = .Range(.Cells(2, 1), .Cells(.UsedRange.Rows.Count, .UsedRange.Columns.Count))
zone.ClearContents
End With
End Sub