Risultati da 1 a 8 di 8

Discussione: Aggiornamento dati ogni notte: come?



  1. #1
    L'avatar di aldomattana
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Modena
    Età
    46
    Messaggi
    184
    Versione Office
    Office 2007
    Likes ricevuti
    9
    Likes dati
    33

    Aggiornamento dati ogni notte: come?

    Salve a tutti, abbiamo una tabella che ricava i dati da un DB del gestionale,
    per avere i dati aggiornati in excel è necessario passare per DATI/AGGIORNA TUTTI,
    il problema è che non sempre ci ricordiamo di farlo e i dati in excel rimangono indietro causando problemi:

    mi chiedevo quindi se vi fosse un modo per far eseguire l'aggiornamento almeno una volta al giorno, di notte.
    Grazie, Aldo.
    PS: Se la "cosa" ti ha aiutato, mi piace se mi dai un "mi piace" - Se mi hai aiutato tu, ti ringrazio 2 volte ;-)

  2. #2
    L'avatar di rollis13
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Cordenons
    Messaggi
    812
    Versione Office
    2016 64bit
    Likes ricevuti
    147
    Likes dati
    53
    Se il file viene aperto tutti i giorni potresti semplicemente mettere nel modulo vba "ThisWorkbook" (Questa_cartella_di_lavoro) questo codice che viene eseguito automaticamente all'apertura del file:
    Codice: 
    Option Explicit
    
    Private Sub Workbook_Open()
    
        '...
        'qui ci va la tua macro che provvede all'aggiornamento delle tabelle
        '...
        'o semplicemente un:
        ActiveWorkbook.RefreshAll       'corrisponde a "Dati/Aggiorna Tutti"
    
    End Sub
    mentre se è un file che rimane sempre aperto allora potrai sfruttare la funzione Application.OnTime per gestire un timer. Nel modulo vba "ThisWorkbook" metterai:
    Codice: 
    Option Explicit
    
    Private Sub Workbook_Open()
    
        Application.OnTime TimeValue("22:00:00"), "Esegui_Aggiornamento"   'orario di esecuzione (ore 22:00)
    
    End Sub
    
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
        
        Application.OnTime Now, "Esegui_Aggiornamento", False      'interrompe la funzione timer prima di chiudere il file
          
    End Sub
    ed in un altro modulo vba metterai:
    Codice: 
    Option Explicit
    
    Sub Esegui_Aggiornamento()
    
        '...
        'qui ci va la macro che provvede all'aggiornamento delle tabelle
        '...
        'o semplicemente un:
        ActiveWorkbook.RefreshAll       'corrisponde a "Dati/Aggiorna Tutti"
    
        Application.OnTime Now + TimeValue("24:00:00"), "Esegui_Aggiornamento"     'ritardo esecuzione successiva (24 ore)
        
    End Sub

  3. I seguenti utenti hanno dato un "Like"


  4. #3
    L'avatar di aldomattana
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Modena
    Età
    46
    Messaggi
    184
    Versione Office
    Office 2007
    Likes ricevuti
    9
    Likes dati
    33
    Citazione Originariamente Scritto da rollis13 Visualizza Messaggio
    Se il file viene aperto tutti i giorni ...
    mentre se è un file che rimane sempre aperto ...
    Ciao rollis13, grazie per la risposta articolata, purtroppo però il nostro caso è il 3°: il file viene raramente aperto, è infatti un file database per excel che 'contiene' i dati e li mette a disposizione di altri file excel, viene raramente aperto anche perchè è un file da xlsx da 30mb circa ...

    In questo 3° caso sapresti dirmi se c'è una soluzione? Magari evitando 'Operazioni pianificate' del menù 'Utilità di sistema' ? :)
    Grazie, Aldo.
    PS: Se la "cosa" ti ha aiutato, mi piace se mi dai un "mi piace" - Se mi hai aiutato tu, ti ringrazio 2 volte ;-)

  5. #4
    L'avatar di rollis13
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Cordenons
    Messaggi
    812
    Versione Office
    2016 64bit
    Likes ricevuti
    147
    Likes dati
    53
    Eh no, se escludi a priori "Operazioni Pianificate" non vedo altre soluzioni che trovare uno "sfigato" che ogni notte va ad aggiornare il file Excel.
    In pratica su un PC sempre acceso (il server PC per esempio) con O.P. lanci il file Excel che con un "Workbook_Open" fa il lavoro sporco ed in fine una macro timer che qualche minuto dopo chiude il file.
    Ora mi prendi in contropiede perché è una vita che non gestisco qualcosa di simile, forse a lavoro ho in una vecchia cartella (chissà dove) dove ho conservato qualche traccia di una cosa simile e sicuramente fatta ai tempi di Excel 2K.
    Speriamo che qualche altro frequentatore del forum abbia un idea migliore ed immediatamente operativa/fruibile.

  6. #5
    L'avatar di Marius44
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    73
    Messaggi
    3209
    Versione Office
    Excel2010
    Likes ricevuti
    625
    Likes dati
    155
    Buona serata a tutti
    Mi intrometto per una banalità (alla quale sicuramente avete già pensato).
    Ma se il file viene aperto solo una volta tanto (quindi non serve sempre), quando lo apri utilizzi il suggerimento di rollis13 (un saluto) al post #2 e quindi ci fai quello che vuoi. A meno che non volessi "vedere" i cambiamenti intervenuti volta per volta; in questo caso anche la eventuale O.P. inserita per ogni notte non te li fa vedere.
    Devi decidere cosa vuoi fare.
    Ciao,
    Mario

  7. #6
    L'avatar di rollis13
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Cordenons
    Messaggi
    812
    Versione Office
    2016 64bit
    Likes ricevuti
    147
    Likes dati
    53
    Ciao Marius44, il fatto è che probabilmente quel file andrebbe aggiornato spesso ma ci si dimentica; infatti aldomattana scrive "che 'contiene' i dati e li mette a disposizione di altri file excel", sono quest'ultimi file che vengono aperti più spesso. Detto ciò, credo proprio che un O.P. sia l'unica via per tenere aggiornato quel file sempre che vi sia un PC sempre acceso.
    Forse, all'apertura dei file di lavoro con una macro si potrebbe verificare la data di salvataggio del file 'dati' e se non è recente far comparire un messaggio di avvertimento.

  8. #7
    L'avatar di aldomattana
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Modena
    Età
    46
    Messaggi
    184
    Versione Office
    Office 2007
    Likes ricevuti
    9
    Likes dati
    33
    Ciao a tutti,

    Citazione Originariamente Scritto da rollis13 Visualizza Messaggio
    Ciao Marius44, il fatto è che probabilmente quel file andrebbe aggiornato spesso ma ci si dimentica; infatti aldomattana scrive "che 'contiene' i dati e li mette a disposizione di altri file excel", sono quest'ultimi file che vengono aperti più spesso.
    E' proprio così :)

    Citazione Originariamente Scritto da rollis13 Visualizza Messaggio
    Detto ciò, credo proprio che un O.P. sia l'unica via per tenere aggiornato quel file sempre che vi sia un PC sempre acceso.
    Questo già avviene normalmente ...

    Citazione Originariamente Scritto da rollis13 Visualizza Messaggio
    Forse, all'apertura dei file di lavoro con una macro si potrebbe verificare la data di salvataggio del file 'dati' e se non è recente far comparire un messaggio di avvertimento.
    Di questo non vi è necessità ...

    A questo punto cedo e inizio a pensare a O.P. però ora il dubbio è come impostare sia l'avvio del file+excel, ma sopratutto la chiusura del file ma non di excel (può essere che altri file di excel siano aperti e debbano rimanere aperti) ... per quel poco che ho visto O.P. non ha tante opzioni ... :(

    Qualche suggerimento?
    Grazie, Aldo.
    PS: Se la "cosa" ti ha aiutato, mi piace se mi dai un "mi piace" - Se mi hai aiutato tu, ti ringrazio 2 volte ;-)

  9. #8
    L'avatar di rollis13
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Cordenons
    Messaggi
    812
    Versione Office
    2016 64bit
    Likes ricevuti
    147
    Likes dati
    53
    Questa macro che riporto da mettere nel modulo "ThisWorkbook" mi è servita più volte per decidere al momento di chiudere se vi sono più file Excel aperti.
    O.P. invece si dovrà solo occupare di avviare quel file Excel. Nell' O.P. nel riquadro "Azione" nell'apposito campo "Programma" dovrai indicare l'esatto percorso dell'eseguibile Excel e nel campo "Argomenti" indicherai l'esatto percorso del file da lanciare. Questo file dovrà essere semplicemente chiuso automaticamente una volta completate le operazioni di aggiornamento oppure con un'altra macro a tempo da integrare nel file stesso.
    Codice: 
    Option Explicit
    
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
    
        Application.EnableEvents = False
        Application.DisplayAlerts = False
        'verifica se vi sono altri file Excel aperti
        If Application.Workbooks.Count = 1 Then
            ThisWorkbook.Save                           'salva il file
            Application.Quit                            'chiudi Excel se c'è solo questo file aperto
        Else
            ThisWorkbook.Close SaveChanges:=True        'salva e chiudi solo questo se ci sono altri file aperti
        End If
         
    End Sub

Discussioni Simili

  1. aggiornamento automatico di un LINK WEB dal quale prelevare dei DATI
    Di nemoclipru nel forum Domande su Excel VBA e MACRO
    Risposte: 10
    Ultimo Messaggio: 12/03/17, 11:58
  2. [Risolto] [Excel 2013] Macro per aggiornamento dati
    Di Daniele.Caso nel forum Domande su Excel VBA e MACRO
    Risposte: 17
    Ultimo Messaggio: 21/11/16, 09:22
  3. [Risolto] Aggiornamento dati da tabella Pivot
    Di march91 nel forum Domande su Excel in generale
    Risposte: 4
    Ultimo Messaggio: 07/10/16, 20:06
  4. estrazione condizionata dati e somma valori per ogni singolo cliente
    Di GioPL nel forum Domande su Excel VBA e MACRO
    Risposte: 4
    Ultimo Messaggio: 19/07/16, 16:26
  5. Aggiornamento dati parziali in un foglio generale
    Di giesa15 nel forum Domande su Excel in generale
    Risposte: 36
    Ultimo Messaggio: 05/03/16, 19:59

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
  •