Copia celle

di il
9 risposte

Copia celle

Buonasera chiedo il vostro aiuto.
Dovrei copiare tramite macro le sole celle con dati del range a1:m20 e copiarle nel foglio 2 a partire dalla prima riga libera.
Qualcuno potrebbe suggerirmi il codice?
ringrazio anticipatamente.

9 Risposte

  • Re: Copia celle

    Non hai scritto neanche una riga da cui partire?
  • Re: Copia celle

    Se fai una ricerca con google, meglio in inglese, trovi parecchi esempi. Questa è la prima cosa da fare, poi per gli affinamenti puoi rivolgerti al forum
  • Re: Copia celle

    Ringrazio oregon e mi scuso perchè ho omesso che il range di celle a1:m20 si trova nel foglio1 mentre la copia andrebbe fatta nel foglio2 a partire dalla prima riga libera.
    Ringrazio anche patel per il suggerimento, ho cercato e cerco su internet per trovare il codice a me più congeniale, ma non riesco ad adattarlo alle mie esigenze, comunque continuo la ricerca anche perchè utile ed interessante a comprendere meglio il codice vba.
  • Re: Copia celle

    Una volta trovato quello a te a me più congeniale, allora puoi rivolgerti al forum per l'adattamento che non riesci a fare
  • Re: Copia celle

    Buonasera ho seguito i vostri suggerimenti e sono riuscito ad adattare del codice che riesce a compiere quasi del tutto l'operazione di cui ho bisogno.
    Riporto il codice di seguito:
    Sub Registra()
    'Registra articoliMacro
    Dim sh1 As Worksheet
    Dim sh2 As Worksheet
    Dim sh3 As Worksheet
    Dim r1 As Long
    Dim r2 As Long
    Dim fg As String
    Set sh1 = Worksheets("Foglio1")
    Set sh2 = Worksheets("Foglio2")
    Set sh3 = Worksheets("fg")
    Application.ScreenUpdating = False
    r1 = sh2.Cells(Rows.Count, 1).End(xlUp).Row + 1
    r2 = sh3.Cells(Rows.Count, 1).End(xlUp).Row + 1
    Range("A9:I23").Copy
    sh2.Activate
    Range("A" & r1).Select
    ActiveSheet.Paste
    sh3.Activate
    Range("A" & r2).Select
    ActiveSheet.Paste
    sh1.Activate
    Application.CutCopyMode = False
    Application.ScreenUpdating = True
    Range("A9:A23").Select
    Selection.ClearContents
    Cells(2, 1).Select

    End Sub
    Quello che non riesco a fare e che questa macro trasferisce nel foglio2 l'intero range A9:I23, detto range non sempre è utilizzato per intero, io vorrei trasferire le sole celle utilizzate (per esempio se il range è utilizzato solo fino alla cella I12, il range da trasferire ed accodare alla prima riga libera del foglio2 fosse l'A9:I12).
    Grazie anticipatamente
  • Re: Copia celle

    Ci sono delle cose strane nel tuo codice:
    1) ci sono 3 fogli invece di 2

    2) calcoli la prima riga libera in:
    r1 = sh2.Cells(Rows.Count, 1).End(xlUp).Row + 1
    r2 = sh3.Cells(Rows.Count, 1).End(xlUp).Row + 1
    e poi non la utilizzi

    3) volevi copiare il range a1:m20 e non c'è traccia di questo range

    insomma hai fatto un puro copia incolla senza cercare di capire come funziona e cosa ti serve.
  • Re: Copia celle

    Grazie Patel per la risposta
    Premetto che non sono esperto di vba mi ci sono avvicinato da poco e cerco di comprendere scusami se commetto degli errori banali.
    Il codice postato l’ho trovato su internet e ho cercato di modificarlo.
    Effettivamente il range di celle è variato facendo diverse prove ora quello utilizzato è a9:i23 e mi scuso se non l’ho specificato.
    Con il codice che ho postato riesco a trasferire l’intero range di celle dal foglio1 al foglio2 (celle con dati e senza dati) e la copia inizia dalla prima riga senza dati del foglio2 e fin qui ottengo ciò che vorrei, quello che intendo migliorare è di trasferire le sole celle del range a9:i23 del foglio1 utilizzate (perché non sempre il range viene utilizzato per intero) nel foglio2 alla prima riga libera e questo la macro lo fa.
    Grazie
  • Re: Copia celle

    Prova questa
    Sub Registra()
    Set sh1 = Worksheets("Foglio1")
    Set sh2 = Worksheets("Foglio2")
    r1 = sh1.Cells(Rows.Count, 1).End(xlUp).Row + 1
    r2 = sh2.Cells(Rows.Count, 1).End(xlUp).Row + 1
    sh1.Range("A9:I" & r1).Copy sh2.Range("A" & r2)
    End Sub
  • Re: Copia celle

    Buonasera Patel scusa il ritardo,
    ho provato il tuo codice, trasferisce le celle in base alle mie esigenze.
    Ti ringrazio per il tempo dedicatomi.
    Saluti
Devi accedere o registrarti per scrivere nel forum
9 risposte