Risultati da 1 a 9 di 9

Discussione: Copiare i dati da un foglio all'altro con un ritardo temporale



  1. #1
    L'avatar di scienziatone
    Clicca e Apri
    Data Registrazione
    Jun 2016
    Località
    napoli
    Età
    28
    Messaggi
    21
    Versione Office
    2003
    Likes ricevuti
    0
    Likes dati
    0

    Copiare i dati da un foglio all'altro con un ritardo temporale

    Ciao a tutti,
    sul foglio 1 di excel ho una tabella che si aggiorna ogni 1 minuto. Vorrei che sul foglio 2 esista una tabella che riporta i dati della tabella presente sul foglio 1 con un ritardo di 1 minuto .
    In poche parole se la tabella del foglio 1 ha dei dati aggiornati alle ore 12:00, vorrei che sul foglio 2 ci siano i dati che c'erano alle 11:59.
    Immagino sia necessario VBA ma qualcuno mi può aiutare a scrivere questo programma?
    Grazie anticipatamente!

  2. #2

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7183
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2067
    Likes dati
    1308

    Re: Copiare i dati da un foglio all'altro con un ritardo temporale

    Ciao,
    sicuramente ti aiuteremo però allega un file di esempio con qualche dato.
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  3. #3
    L'avatar di scienziatone
    Clicca e Apri
    Data Registrazione
    Jun 2016
    Località
    napoli
    Età
    28
    Messaggi
    21
    Versione Office
    2003
    Likes ricevuti
    0
    Likes dati
    0

    Re: Copiare i dati da un foglio all'altro con un ritardo temporale

    Ecco a te il file. Come puoi vedere nel primo foglio c'è una tabella e quei valori cambiano ogni minuto, quindi vorrei che nel foglio 2 ci sia la stessa tabella con i valori che vi erano 1 minuto fa. Quindi ogni minuto nel foglio 2 i valori devono essere sovrascritti e devono essere sempre identici a quelli che erano presenti nel foglio 1 un minuto prima.
    File Allegati File Allegati

  4. #4

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7183
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2067
    Likes dati
    1308

    Re: Copiare i dati da un foglio all'altro con un ritardo temporale

    Provo così:

    Codice: 
    Private Sub Worksheet_Activate()
    Dim x As Integer, y As Integer
        Application.EnableEvents = False
            Application.Wait Now + TimeValue("00:01:00")
                For x = 1 To 10
                For y = 1 To 10
                    Cells(x, y).Value = Sheets(1).Cells(x, y).Value
                Next: Next
        Application.EnableEvents = True
    End Sub
    EDIT: Avevo previsto aggiornamento dopo un secondo ... ho corretto
    File Allegati File Allegati
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  5. #5

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4050
    Versione Office
    2013
    Likes ricevuti
    1240
    Likes dati
    931

    Re: Copiare i dati da un foglio all'altro con un ritardo temporale

    Ciao a tutti,

    @ges

    io utilizzerei OnTime piuttosto che Wait... almeno, nel frattempo posso continuare a fare altre operazioni.

    Inoltre l'avevo pensata un pò diversa... cioè, avere una macro (in un modulo standard) da richiamare (la tua va benissimo):

    Codice: 
    Sub riempi()
    Dim x As Integer, y As Integer
    
    
    With Sheets(2)
        For x = 1 To 10
            For y = 1 To 10
                .Cells(x, y).Value = Sheets(1).Cells(x, y).Value
        Next: Next
    End With
    End Sub
    Mentre il codice "principale" lo legherei all'evento Worksheet_Change" del "Foglio1":

    Codice: 
    Private Sub Worksheet_Change(ByVal Target As Range)
    
    
    Application.EnableEvents = False
    Application.OnTime Now + TimeValue("00:00:59"), "riempi"
    Application.EnableEvents = True
    
    
    End Sub
    P.S.
    Ho messo 59 secondi invece di un minuto, perchè magari, accavallandosi le due "importazioni" (visto che il foglio 1 si aggiorna ogni minuto) si rischia che alcuni dati vengano trascurati.
    File Allegati File Allegati

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  6. I seguenti 2 utenti hanno dato un "Like" a cromagno per questo post:


  7. #6

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7183
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2067
    Likes dati
    1308

    Re: Copiare i dati da un foglio all'altro con un ritardo temporale

    Ciao Cromagno,
    buona idea la tua , mi piace sia perchè hai usato On Time che permette di fare altre operazioni nel frattempo che passa il tempo ma anche l'evento Change ... infatti, se non vi sono variazioni inutile aggiornare!
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  8. #7
    L'avatar di scienziatone
    Clicca e Apri
    Data Registrazione
    Jun 2016
    Località
    napoli
    Età
    28
    Messaggi
    21
    Versione Office
    2003
    Likes ricevuti
    0
    Likes dati
    0

    Re: Copiare i dati da un foglio all'altro con un ritardo temporale

    Citazione Originariamente Scritto da cromagno Visualizza Messaggio
    Ciao a tutti,

    @ges

    io utilizzerei OnTime piuttosto che Wait... almeno, nel frattempo posso continuare a fare altre operazioni.

    Inoltre l'avevo pensata un pò diversa... cioè, avere una macro (in un modulo standard) da richiamare (la tua va benissimo):

    Codice: 
    Sub riempi()
    Dim x As Integer, y As Integer
    
    
    With Sheets(2)
        For x = 1 To 10
            For y = 1 To 10
                .Cells(x, y).Value = Sheets(1).Cells(x, y).Value
        Next: Next
    End With
    End Sub
    Mentre il codice "principale" lo legherei all'evento Worksheet_Change" del "Foglio1":

    Codice: 
    Private Sub Worksheet_Change(ByVal Target As Range)
    
    
    Application.EnableEvents = False
    Application.OnTime Now + TimeValue("00:00:59"), "riempi"
    Application.EnableEvents = True
    
    
    End Sub
    P.S.
    Ho messo 59 secondi invece di un minuto, perchè magari, accavallandosi le due "importazioni" (visto che il foglio 1 si aggiorna ogni minuto) si rischia che alcuni dati vengano trascurati.
    Grazie a tutti voi per le risposte e per i files. Chiedo, per capire meglio, cosa sta ad indicare la dicitura "For x = 1 To 10 For y = 1 To 10". X ed Y sarebbero le coordinate delle celle?

  9. #8

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7183
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2067
    Likes dati
    1308

    Re: Copiare i dati da un foglio all'altro con un ritardo temporale

    Citazione Originariamente Scritto da scienziatone Visualizza Messaggio
    Grazie a tutti voi per le risposte e per i files. Chiedo, per capire meglio, cosa sta ad indicare la dicitura "For x = 1 To 10 For y = 1 To 10". X ed Y sarebbero le coordinate delle celle?
    No, "For x = 1 To 10" corrisponde al numero delle righe (dalla 1 alla 10) mentre "For y = 1 To 10" corrisponde al numero della colonne (dalla colonna A alla J)

    In pratica "For x = 1 To 10 For y = 1 To 10" copre l'intervallo A1: J10
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  10. #9
    L'avatar di scienziatone
    Clicca e Apri
    Data Registrazione
    Jun 2016
    Località
    napoli
    Età
    28
    Messaggi
    21
    Versione Office
    2003
    Likes ricevuti
    0
    Likes dati
    0

    Re: Copiare i dati da un foglio all'altro con un ritardo temporale

    Citazione Originariamente Scritto da ges Visualizza Messaggio
    No, "For x = 1 To 10" corrisponde al numero delle righe (dalla 1 alla 10) mentre "For y = 1 To 10" corrisponde al numero della colonne (dalla colonna A alla J)

    In pratica "For x = 1 To 10 For y = 1 To 10" copre l'intervallo A1: J10
    grazie!

Discussioni Simili

  1. Copiare dati univoci su altro foglio
    Di totorom1 nel forum Domande su Excel in generale
    Risposte: 11
    Ultimo Messaggio: 20/02/17, 16:20
  2. Copiare dati da un foglio ad un altro
    Di sergiogranero nel forum Domande su Excel VBA e MACRO
    Risposte: 2
    Ultimo Messaggio: 04/12/16, 10:35
  3. MACRO per copiare dati su un altro foglio
    Di mpaolett nel forum Domande su Excel VBA e MACRO
    Risposte: 3
    Ultimo Messaggio: 06/06/16, 20:46
  4. copiare celle con dati su altro foglio
    Di dorico75 nel forum Domande su Excel in generale
    Risposte: 4
    Ultimo Messaggio: 30/05/16, 18:20
  5. Copiare dati celle in colonne altro foglio
    Di Cavier80 nel forum Domande su Excel VBA e MACRO
    Risposte: 11
    Ultimo Messaggio: 22/05/16, 22:29

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •