Condividi:        

aggiornamento file ..durante la notte

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

aggiornamento file ..durante la notte

Postdi luca62 » 23/09/16 05:53

Salve,
Ho una serie di files (una ventina) con riferimenti ad altri files che necessitano di essere periodicamente aggiornati.
STo pensando a fare come faccio con i salvataggi (files batch) per quanto riguarda il "richiamo alla directory connesso ad un certo orario della notte.(sempre che non ci sia un sistema migliore)
In pratica dovrei aprire il file PIPPO che deve essere aggiornato, far si che le formule excel siano attive (calcolo automatico) e eseguire una macro PAPERINO , salvare il file, e chiuderlo, quindi passare a fare lo stesso lavoro con il file TOPOLINO, eseguire una macro PAPERINA .
Volendo potrei inserire tutti i files che devo aggiornare nella stessa directory e chiamare la macro (che appartiene ciascun file) con lo stesso nome se è più semplice.
è una cosa possibile?
luca62 office2007 window7
luca62
Utente Senior
 
Post: 173
Iscritto il: 23/12/12 14:54

Sponsor
 

Re: aggiornamento file ..durante la notte

Postdi Anthony47 » 24/09/16 00:24

Allora, in un nuovo file ti crei una tabella con in colonna A il Percorso e nome dei file; esempio:
C:\Users\UTENTE\Downloads\NomeFile.xlsm
Nella colonna B il nome della macro da eseguire

Poi aggiungi questa macro:
Codice: Seleziona tutto
Sub ttLuca62()
Dim nwOpen As String, nwRun As String, cCalc
'
For I = 2 To Cells(Rows.Count, 1).End(xlUp).Row
    nwRun = Cells(I, 2).Value
    Workbooks.Open Filename:=Cells(I, 1).Value
    cCalc = Application.Calculation
    Application.Calculation = xlCalculationAutomatic
    Calculate
    nwOpen = ActiveWorkbook.Name
    Debug.Print "Aperto: ", Now & " - " & nwOpen
    Application.Run "'" & nwOpen & "'!" & nwRun
    Application.Calculation = cCalc
    Application.DisplayAlerts = False
    Workbooks(nwOpen).Close True
    Application.DisplayAlerts = True
    Debug.Print "Chiuso: ", Now & " - " & nwOpen
Next I
Debug.Print "Completato"
End Sub

Manda in esecuzione la macro quando ti serve.

Nota: all'apertura o durante l'esecuzione della macro potrebbero comparire dei messaggi bloccanti, che potrebbero essere evitati usando Application.DisplayAlerts = False ( e poi True).
Io ho mascherato solo possibili messaggi in chiusura/salvataggio file. Non conoscendo a priori il motivo di altri alert non li ho mascherati; collauda il comportamento dei tuoi file e se i messaggi possono essere ignorati inserisci gli opportuni Application.DisplayAlerts = False /True

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19181
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: aggiornamento file ..durante la notte

Postdi luca62 » 26/09/16 12:12

Anthony,
se ho ben capito, il file composto ,,nella colonna A dal file completo di percorso e nellla B dalla macro,
fa si che una volta aperto questo file e attivat ala macro, mi va a eseguire le varie macro sui vari file
(immagino prima il file della 2^ riga, poi quello della 3^ e così via).

i messaggi che mi bloccano le esecuzioni sono 2 :
in un file: mi chiede di selezionare un tasto : SI o No o Annulla ed io voglio dire di SI
in altri file : devo selezionare il tasto continua.
Come posso "dirglielo" ?
luca62 office2007 window7
luca62
Utente Senior
 
Post: 173
Iscritto il: 23/12/12 14:54

Re: aggiornamento file ..durante la notte

Postdi luca62 » 26/09/16 13:51

TUTTO OK,ora mi manca solo da capire come far si che la macro che mi hai fatto possa
partire automaticamente ad una certa ora della notte .
Ossia chi mdice al file di aprirsi alle 3 di notte ,far eseguire la macro e chiudersi?
luca62 office2007 window7
luca62
Utente Senior
 
Post: 173
Iscritto il: 23/12/12 14:54

Re: aggiornamento file ..durante la notte

Postdi Anthony47 » 26/09/16 22:20

Immagino che alla fine hai usato Application.DisplayAlerts = False /True a destra e a manca...

Per eseguire il tutto alle 3 di notte lascia il file aperto e attiva "On Time" la Sub ttLuca62.

Allo scopo (attivare On time la sub ttLuca62) esegui questa macro:

Codice: Seleziona tutto
Sub schedula()
If Sheets("Foglio1").Range("Z1").Value < Now Then    '<<< Il foglio con l'elenco dei file da aprire
    Application.OnTime (Int(Now) + 1 + 3 / 24), "ttLuca62"
    Range("Z1").Value = Int(Now) + 1 + 3 / 24
End If
End Sub

Per il collaudo usa
Application.OnTime (Int(Now) + 0 + 13 / 24), "ttLuca62"
Dove +0 significa "oggi" (e +1 significherebbe Domani) e +13 significa Ore 13 (di oggi); invece di 13 usa un orario che ti consenta di controllare che la Sub ttLuca62 effettivamente si esegua.
La Z1 viene usata come cella di servizio per evitare che la ttLuca62 possa essere schedulata piu' volte.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19181
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "aggiornamento file ..durante la notte":


Chi c’è in linea

Visitano il forum: Nessuno e 35 ospiti