Copiare iterativamente range



  • Copiare iterativamente range
    di bobo (utente non iscritto) data: 11/06/2015 18:19:10

    Buonasera a tutti,
    volevo chiedervi se è possibile copiare le righe di una matrice(15 righe),una alla volta,sempre in uno stessa riga(263).
    credo sia necessario un ciclo for, ma non riesco a farlo funzionare.
    posto la macro

     
    Sub Copia_valori()
    '
    ' Copia_valori Macro
    '
    
    '
    Dim range As range
    Dim i As Integer
        For i = 3 To 15
        range(i, "A:BO").Select
        Selection.Copy
        range("A263:BO263").Select
        Selection.PasteSpecial Paste:=xlPasteValues
        Next i
        
    End Sub



  • di Marius44 data: 11/06/2015 19:37:42

    Credo che non funzioni perchè il ciclo mi pare alquanto strano; prova con il tuo codice riveduto (vedi sotto).
    Ma vorrei capire una cosa: dopo che hai lanciato la macro potrai vedere SOLO l'ultima riga, vista la velocità d'esecuzione. Ma a cosa serve 'sta macro?
     
    Sub Copia_valori()
    Dim i As Integer
        For i = 3 To 15
        Range("A" & i & ":BO" & i).Copy
        Range("A263").PasteSpecial Paste:=xlPasteValues
        Next i    
    End Sub



  • di bobo (utente non iscritto) data: 11/06/2015 22:28:13

    Grazie mille per la dritta,la tua macro funziona ovviamente,io nel frattempo ho risolto correggendo quella che ti avevo mandato.
    Ti posto la correzione,per curiosità.
    Come vedi c'è in aggiunta la copia di una cella (BQ266) ad ogni iterazione.
    In pratica copiando quei range(il ciclo reale compie 262 iterazioni e non solo 15) volta per volta, delle funzioni svolgono i calcoli e il risultato in BQ266 viene riportato ad ogni passo nella colonna BR.
    Ti ringrazio molto per l'aiuto!!!!!

    Buona serata
     
    Sub Copia_valori()
    '
    ' Copia_valori Macro
    '
    
    '
        For i = 3 To 262
        range(Cells(i, 1), Cells(i, 67)).Select
        Selection.Copy
        range("A265").Select
        Selection.PasteSpecial Paste:=xlPasteValues
        range("BQ266").Select
        Selection.Copy
        Cells(i, "BR").Select
        Selection.PasteSpecial Paste:=xlPasteValues
        Next i
        
    End Sub