dunque, ho un foglio popolato da dati che scarico dal web dalla col C alla N e in queste colonne vi sono dei range che devo copincollare dopo la col O in fila di righe distanziate da 2 col vuote.
a tale scopo, tramite formule, mi vengono riportate nella col A gli indirizzi delle celle di partenza per la costruzione del mio range.
tali range verranno selezionati da un segnale (il numero 1) in col B che saranno poi quelli realmente riportati, perchè tutti non mi interessano.
ora, per fare questo mi sono costruito una macro, che fa il ciclo della col B per vedere se ci sono numeri 1 e se si, crea il range tramite l'indirizzo alla relativa col A.
questa è la macro:
- Codice: Seleziona tutto
Sub x()
Range("Q:AA").ClearContents
ultimaRiga = Range("B" & Rows.Count).End(xlUp).Row
For i = 1 To ultimaRiga
If Range("B" & i).Value = 1 Then
PR = Range([A2]).Offset(0, 0).Address
UR = Range([A2]).End(xlDown).Offset(0, 2).Address
fineCol = Cells(4, Cells.Columns.Count).End(xlToLeft).Offset(0, 2).Column
Range(PR & ":" & UR).Copy
Cells(4, fineCol).PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
End If
Next i
End Sub
e funziona correttamente, ma ovviamente mi riporta per ogni ciclo soltanto quello che ho indicato:
PR = Range([A2]).Offset(0, 0).Address
UR = Range([A2]).End(xlDown).Offset(0, 2).Address
quindi sempre il range che indica la cella A2
come faccio a modificare nel codice la cella fissa A2 con le righe relative del ciclo tipo ("A" e i) per intenderci?
ho fatto diverse prove ma mi da sempre qualche errore.
allego file di esempio, grazie a chi mi darà una mano.
https://www.filedropper.com/cartel1_8