Acquista i nostri libri consigliati su Amazon.it
+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 5 su 5

Ciclo copia incolla valori celle

  1. #1
    Luca050284 non è in linea Scolaretto
    Post
    55
    Like Inviati  
    0
    Like Ricevuti  
    0
    Salve a tutti,

    sono qualche anno che non utilizzo quel poco che sapevo di vba, avrei bisogno di una mano per scorrere le celle e copiare e incollare dei valori con un ciclo for.
    questo è quello che ho fatto, con il registratore di macro!

    Sub copiareIntervalli()

    r = Range("B5:E5").Select '//seleziona l'intervallo// ho inserito valori come 1 2 3 4
    Selection.Copy '//copialo//
    Range("B5:E20").Select '//seleziona l'altro intervallo//
    ActiveSheet.Paste '//copialo//

    End Sub

    vorrei che partendo da quel range selezionato mi scorresse celle e colonne, fino a B5:E20
    la Finezza, non necessaria per forza, sarebbe inserire Application.Wait Now + TimeValue("00:00:05") , istruzione trovata sul web, in modo che passi qualche millesimo o secondo tra una cella e l altra per vedere visivamente che fa.

    Grazie tante a tutti

    Luca

  2. #2
    ricky53 non è in linea Scribacchino
    Post
    1,023
    Like Inviati  
    0
    Like Ricevuti  
    0
    Ciao,
    la necessità reale quale è?

    Tralasciamo il codice, descrivi cosa devi fare e ... come farlo lo vediamo dopo ed insieme.


    Tu hai dei dati in un certo intervallo (ipotizziamo "A2:E1000") di dati
    Cosa vuoi fare su questi dati?
    ℹ️ Leggi di più su ricky53 ...

  3. #3
    Luca050284 non è in linea Scolaretto
    Post
    55
    Like Inviati  
    0
    Like Ricevuti  
    0
    Dunque, lo scopo sarebbe un altro però mi sa che dovrò aprire un altro thread,( a brevissimo ) era soltanto per riprendere confidenza .Prima posto quello che ho fatto; che sembra funzioni! : lo scopo era leggere dei dati in riga , posti in riga a partire da B5 scorre le celle e copiarle fino ad un tot di righe successive sottostanti..in questo caso 10.
    Ovvio i consigli son ben accetti. Anche perchè penso sia un codice rigido. Intendo ad esempio , io gli ho detto di scorrere a dx da 2 a 5, ma se ci fossero più dati?! in riga?..gli dovrei dire , fermati alla prima cella vuota?!
    Grazie
    Sub copiareIntervalliCONciclo()

    Dim A(10)

    For i = 2 To 5

    A(i) = Worksheets("Foglio2").Cells(5, i)
    For j = 1 To 10
    Worksheets("Foglio2").Cells(5 + j, i) = A(i)

    Next j
    Next i

    End Sub

  4. #4
    ricky53 non è in linea Scribacchino
    Post
    1,023
    Like Inviati  
    0
    Like Ricevuti  
    0
    Ciao,
    se è per riprendere dimestichezza ... devi calcolare l'ultima riga con dati in colonna "B" e sostituire il "5" con questa riga.

    Esempio:
    Option Explicit
    
    Sub copiareIntervalliCONciclo()
        Dim A(100), UR As Long, I As Long, J As Long
        
        UR = Range("B" & Rows.Count).End(xlUp).Row
        For I = 2 To UR
            A(I) = Worksheets("Foglio1").Cells(5, I)
            For J = 1 To 10
                Worksheets("Foglio1").Cells(5 + J, I) = A(I)
            Next J
        Next I
    End Sub
    
    ℹ️ Leggi di più su ricky53 ...

  5. #5
    L'avatar di Zer0Kelvin
    Zer0Kelvin non è in linea Scolaretto
    Post
    300
    Like Inviati  
    0
    Like Ricevuti  
    0
    Ciao.
    Visto che devi riprendere confidenza, qualche considerazione a scopo didattico:
    1) utilizza sempre la dichiarazione obbligatoria delle variabili, questo permette a VBA di identificare automaticamente molti errori.
    2)la variabile A(10) dichiarata come array viene di fatto utilizzata come una variabile semplice
    3)la variabile A è superflua
    4)in realtà anche entrambi i cicli for...next sono superflui
    Osserva questo: le quattro Sub funzionano tutte esattamente allo stesso modo
    Option Explicit '<==== dichiarazione obbligatoria delle variabili
    
    Sub copiareIntervalliCONciclo1()
    Dim i As Long, j As Long, A As Variant
        With Worksheets("Foglio2")
        For i = 2 To 5
            A = .Cells(5, i)
            For j = 1 To 10
                .Cells(5 + j, i) = A
            Next j
        Next i
        End With
    End Sub
    
    Sub copiareIntervalliCONciclo2()
    Dim i As Long, j As Long
        With Worksheets("Foglio2")
        For i = 2 To 5
            For j = 1 To 10
                .Cells(5 + j, i) = .Cells(5, i)
            Next j
        Next i
        End With
    End Sub
    
    Sub copiareIntervalliCONciclo3()
    Dim i As Long
        With Worksheets("Foglio2")
        For i = 2 To 5
            .Range(Cells(6, i), Cells(15, i)).Value = .Cells(5, i).Value
        Next i
        End With
    End Sub
    
    Sub copiareIntervalliCONciclo4()
        With Worksheets("Foglio2")
            .Range(Cells(6, 2), Cells(15, 5)).Value = .Range(Cells(5, 2), Cells(5, 5)).Value
        End With
    End Sub
    
    --EDIT--- ciao Ricky, mi sono sovrapposto non avendo visto la tua replica
    Ultima modifica di Zer0Kelvin; 09-02-2014 03:53 
    ℹ️ Leggi di più su Zer0Kelvin ...

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Copia e incolla valori sull’ultima riga vuota
    Da AlexM29 nel forum Microsoft Excel
    Risposte: 2
    Ultimo Post: 29-12-2020, 06:25
  2. Copia -> Incolla valori da file excel esterno
    Da oz85 nel forum Microsoft Excel
    Risposte: 4
    Ultimo Post: 26-03-2018, 15:29
  3. Copia incolla valori ogni 4 colonne
    Da Rapulzel nel forum Microsoft Excel
    Risposte: 4
    Ultimo Post: 27-01-2012, 15:07
  4. copia e incolla in celle vuote
    Da peghi nel forum Microsoft Word
    Risposte: 5
    Ultimo Post: 13-05-2008, 10:26
  5. Risposte: 2
    Ultimo Post: 02-12-2006, 09:49