salve
ti posto la soluzione che ti ho messo anche nella richiesta di altro forum.
la macro
Sub CopiaCelle()
non serve, sostituisci la tua macro CopiaRange() come segue:
Public shUltimoFoglio As Worksheet
Sub CopiaRange()
Dim riga() As Variant
Dim Colonna As Long
Dim shF1 As Worksheet
Dim RNG As Range
Set shF1 = Worksheets("Foglio1")
shF1.Select
On Error GoTo FINE
Set RNG = Application.InputBox(prompt:="seleziona/dimmi cella", Type:=8)
RNG.Resize(1, 5).Select
Application.ScreenUpdating = False
Selection.Copy Destination:=Sheets("foglio2").Range("a5000")
col = Selection.Column
rr = Selection.Row
celcount = Selection.Count
ReDim riga(celcount)
For ic = 0 To celcount
riga(ic) = Cells(rr, col).Value
col = col + 1
Next
Sheets("foglio2").Select
Range("a5000").CurrentRegion.Select
For i = LBound(riga) To UBound(riga) - 1
Colonna = fnFineCol(riga(i))
Fr = Selection.Row
Fc = Selection.Column
Ur = Selection(Selection.Count).Row
Uc = Selection(Selection.Count).Column
For nr = Fr To Ur
Range(Cells(nr, Fc), Cells(nr, Uc)).Copy Destination:=shUltimoFoglio.Cells(riga(i), Colonna)
Colonna = Colonna + Uc - Fc + 1
Next
Next
Range("a5000").CurrentRegion.ClearContents
[A1].Select
FINE:
End Sub
saluti