Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

vba, range tramite indirizzo

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

vba, range tramite indirizzo

Postdi ilfuocoblu » 04/09/20 18:05

salve amici! ho bisogno ancora del vostro prezioso aiuto.

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
ilfuocoblu
Utente Junior
 
Post: 18
Iscritto il: 03/02/15 20:36

Sponsor
 

Re: vba, range tramite indirizzo

Postdi Anthony47 » 04/09/20 18:50

Probabilmente il tuo ciclo dovrebbe essere
Codice: Seleziona tutto
If Range("B" & i).Value = 1 Then
    PR = Range("A" & i).Value
    UR = Range(PR).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

Fai sapere...
Avatar utente
Anthony47
Moderatore
 
Post: 17162
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: vba, range tramite indirizzo

Postdi ilfuocoblu » 04/09/20 19:02

Anthony47 ha scritto:Probabilmente il tuo ciclo dovrebbe essere
Codice: Seleziona tutto
If Range("B" & i).Value = 1 Then
    PR = Range("A" & i).Value
    UR = Range(PR).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

Fai sapere...


ovviamente, certo che va bene.
mi ero impantanato con l'indirizzo senza pensare di assegnare il valore alla cella.
grazie mille Anthony! ;)
ilfuocoblu
Utente Junior
 
Post: 18
Iscritto il: 03/02/15 20:36


Torna a Applicazioni Office Windows


Topic correlati a "vba, range tramite indirizzo":


Chi c’è in linea

Visitano il forum: Nessuno e 45 ospiti