macro copia incolla righe in automatico da un foglio ad un altro dello stesso file

Anonimo
2012-10-20T08:37:38+00:00

spero di esserci riuscito,se ancora e' negativo,puoi darmi una email dove inviarlo

grazie

maurizio caserta

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2012-11-28T10:38:54+00:00

Ciao Maurizio,

ho modificato il tuo file. Di seguito il link

Sistem Trading modificato

Non ho potuto fare l'aggiornamento completo dei dati (con la cattura via web) in quanto mi viene richiesto un file che non ho. Tuttavia la funzionalità del timer e della copia dei dati tra i due fogli funziona correttamente.

David

La risposta è stata utile?

0 commenti Nessun commento

25 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2012-11-22T11:09:52+00:00

    Maurizio,

    probabilmente io so' come fare ma non ho il tuo file davanti e quindi non posso che essere generico.

    Prova a seguire questo flusso:

    • entra nell'editor VBA
    • in un modulo standard inserisci il codice relativo alla gestione del timer che hai trovato nel link che ti avevo indicato avendo cura di modificare la parte che lancia la macro in questo modo:

    Application.OnTime Now + TimeValue("00:03:00"), "TuaMacro"

    dove TuaMacro è la macro che aggiorna il foglio DATI

    e copia pure la mia macro CopiaCalcolo

    - Nell'evento Open dell'oggetto ThisWorkbook dovrai inserire il codice che inizializza il timer per far eseguire la macro che aggiorna il foglio dati quindi:


    Private Sub Workbook_Open()

        Call mStart

    End Sub


    • alla fine del codice della macro che ti aggiorna il foglio DATI (prima di End Sub) scrivi

    Call CopiaCalcolo

    In questo modo: quando apri la cartella di lavoro viene inizializzato il timer a 3 minuti. Decorsi i 3 minuti viene lanciata TuaMacro che aggiorna il foglio dati. In coda alla macro viene lanciata la macro CopiaCalcolo che aggiorna il foglio Calcolo con le nuove righe aggiunte nel foglio Dati.

    Ultima opzione: condividi il tuo foglio così possiamo ragionare su dati concreti.

    David

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2012-11-22T10:53:20+00:00

    ho provato ma non ci riesco,puoi guidarmi a collocare le singole macro nel modo corretto,credo che tu sappia come fare.

    grazie maurizio caserta

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2012-11-22T08:58:26+00:00

    Questa macro copia le righe aggiunte del foglio Dati nel foglio Calcolo.

    Copia solo valori.

    Come detto precedentemente, a mio avvio, conviene non sfruttare eventi nel foglio Dati ma sarebbe opportuno richiamare questa macro subito dopo quella che ti aggiorna i il foglio Dati.


    Sub CopiaCalcolo()

        Dim shOrigine As Worksheet

        Dim shDestinazione As Worksheet

        Dim lRigaOrigine As Long

        Dim lRigaDestinazione As Long

        Dim lColonna As Long

        With Application

            .ScreenUpdating = False

            .Calculation = xlCalculationManual

        End With

        With ThisWorkbook

            Set shOrigine = .Worksheets("Dati")

            Set shDestinazione = .Worksheets("Calcolo")

        End With

        With shOrigine

            lRigaOrigine = .Cells(shOrigine.Rows.Count, 1).End(xlUp).Row

            lColonna = .Cells(1, .Columns.Count).End(xlToLeft).Column

        End With

        lRigaDestinazione = shDestinazione.Cells(shDestinazione.Rows.Count, 1).End(xlUp).Row

        If lRigaDestinazione = 1 Then lRigaDestinazione = 0

        If lRigaOrigine > lRigaDestinazione Then

            With shOrigine

                .Range(.Cells(lRigaDestinazione + 1, 1), .Cells(lRigaOrigine, lColonna)).Copy

                shDestinazione.Cells(lRigaDestinazione + 1, 1).PasteSpecial _

                    Paste:=xlPasteValues, _

                    SkipBlanks:=False

            End With

        End If

        With Application

            .ScreenUpdating = True

            .CutCopyMode = False

            .Calculation = xlCalculationAutomatic

        End With

        Set shOrigine = Nothing

        Set shDestinazione = Nothing

    End Sub


    David

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2012-11-21T20:29:49+00:00

    quello che voglio e' copiare solo le nuove righe dal foglio dati al foglio calcolo,ogni volta che ce'ne una nuova,accodandola alle presistenti,quindi il foglio calcolo sara' un accumulo progressivo di righe copiate ed incollate dal foglio dati,le copie saranno solo i valori e non le formule.

    Grazie

    maurizio caserta

    La risposta è stata utile?

    0 commenti Nessun commento