You are here:---Rispondi a: [RISOLTO] Mancata copia dati con script VBA
Rispondi a: [RISOLTO] Mancata copia dati con script VBA2018-09-13T10:37:16+02:00

Home Forum Domande su Excel VBA e MACRO [RISOLTO] Mancata copia dati con script VBA Rispondi a: [RISOLTO] Mancata copia dati con script VBA

BySalvBySalv
Amministratore del forum
    Post totali: 510

    Ciao bg66, quando si copiano dati da una posizione ad un altra, bisogna indicare dove prendere i dati e dove collocarli, dando indicazioni precise, riga colonna.

    nel tuo caso il problema è un poco più complesso, in quanto i dati che prelevi cioè

    Range(“c4,c6,c8,c10,b14”).Copy

    sono diverse celle tutte(quasi) in verticale, quando poi vai a copiarle dando solo la cella iniziale, Excel tende ad incollarle tutte in orizzontale, ma orizzontalmente nel range di partenza non ce ne sono, quindi non fa la copia in modo corretto.

    riscriviamo un poco la tua macro, ho messo i commenti per sapere cosa fa la riga di codice

    Sub CreaStorico2b()
    Dim sh1 As Worksheet, sh2 As Worksheet   'ho creato 2 variabili oggetto per i fogli
    Dim Ur As Long 'creato la variabile per l'ultima riga
    
    Set sh1 = Worksheets("Attestato") 'metto negli oggetti creati il nome del foglio
    Set sh2 = Worksheets("Storico") 'ora scrivendo solo sh1-sh2 mi riferisco ad un foglio oppure un altro
    sh1.Activate 'mi posiziono sul foglio1 "Attestato"
    
    'trovo l'ultima riga occupata + 1 per predere la cella vuota
    Ur = sh2.Cells(Rows.Count, 1).End(xlUp).Row + 1
    
    'a questo punto senza fare copia/incolla, passo direttamente i valori dal foglio1 al foglio2
    'notare che uso due esempi uno con Cells che fa riferimento Cells(Riga, Colonna) l'altro con range
    'io trovo più conveniente Cells
    sh2.Range("A" & Ur) = sh1.Range("C4")
    sh2.Range("B" & Ur) = sh1.Range("C6")
    sh2.Cells(Ur, 3) = sh1.Cells(8, 3)
    sh2.Cells(Ur, 4) = sh1.Cells(10, 3)
    sh2.Cells(Ur, 5) = sh1.Cells(14, 2)
    sh2.Cells(Ur, 6) = sh1.Cells(32, 6)
    
    Set sh1 = Nothing 'cancello le variabili oggetto
    Set sh2 = Nothing
    End Sub

    questo è il metodo più sicuro di trasferire i dati, il copia/incolla va bene quando sono dati consecutivi e vengono copiati in orizzontale.

    Ciao By Sal :bye:

    Utilizzando il sito, accetti l'utilizzo dei cookie da parte nostra. maggiori informazioni

    Questo sito utilizza i cookie per fornire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o cliccando su "Accetta" permetti il loro utilizzo.

    Chiudi