Intervallo celle



  • Intervallo celle
    di Marco (utente non iscritto) data: 23/01/2014 11:28:10

    Ciao sono nuovo.
    è possibile copiare un intervallo di celle non consecutive con una singola istruzione?
    Cioè ho ad es.
    a2=5
    a5=8
    a8=7
    e vorrei riportare i valori in c2,c5,c8
    usando qualcosa del tipo
    Range("c2,c5,c8") = Range("a2,a5,a8")
    mi scrive solo a2 su tutte le celle



  • di Micky (utente non iscritto) data: 23/01/2014 11:58:34

    Ciao, Marco...........per ottenere quello che dici, dovresti utilizzare il Registratore di Macro, in quanto io ho provato a farlo e poi mi riesce, che cioè mi copia a2, a5, a8, in c2, c5, c8.
    Comunque, te lo posto qui sotto.
    Prova e fai sapere.
    Ti saluto.
    Micky
     
    Sub Macro1()
    Range("A2:A8").Select
        Selection.Copy
        Range("C2").Select
        ActiveSheet.Paste
        Application.CutCopyMode = False
    End Sub          



  • di Marco (utente non iscritto) data: 23/01/2014 12:26:30

    Avevo già provato con il registratore, ma mi chiedevo se ci fosse qualcosa di più diretto.
    Grazie comunque



  • di isy (utente non iscritto) data: 23/01/2014 13:04:52

    Ciao

    Cit: è possibile copiare un intervallo di celle non consecutive con una singola istruzione?

    Utilizza un ciclo nei range:
     
    Sub Copia_Intervallo()
      For Each rng In Union(Range("A2"), Range("A5"), Range("A8"))
        rng.Offset(, 2) = rng.Value
      Next
    End Sub



  • di scossa data: 23/01/2014 14:46:19

    @ isy: For Each rng In Union(Range("A2"), Range("A5"), Range("A8"))

    Io eviterei Union() se gli indirizzi sono comunqe noti:
     
    Sub Copia_Intervallo()
      Dim rng As Range
      Const sAdd As String = "A2,A5,A8"
      For Each rng In Range(sAdd)
        rng.Offset(, 2) = rng.Value
      Next
    End Sub