Condividi:        

aggiornare il foglio di excel ogni secondo automaticamente

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

aggiornare il foglio di excel ogni secondo automaticamente

Postdi xing83 » 21/10/06 08:09

Salve, ho la necessita di utilizzare dei dati in excel che devono essere aggiornati ogni secondo, come faccio a fargli fare il refresh del foglio in automatico del foglio invece di premere F9?
xing83
Utente Senior
 
Post: 289
Iscritto il: 21/01/03 00:24

Sponsor
 

Postdi Anthony47 » 21/10/06 11:54

Ciao xing,
puoi usare il metodo OnTime per rischedulare il riavvio di una macro ogni tot tempo. Esempio:
Codice: Seleziona tutto
Sub Restarta()
CellaFlag = "M1"     '<<<-- Cambiare se necessario
DeltaT = "00:00:05"  '<<< restart ogni 5 Secondi; cambiare se necessario
'
Calculate
If Range(CellaFlag).Value = 0 Then
 Range(CellaFlag).Interior.ColorIndex = xlNone
 Exit Sub
End If
Application.OnTime Now + TimeValue(DeltaT), "Restarta"
Range(CellaFlag).Interior.ColorIndex = 3   '<<< 3=ROSSO; 4=Verde; 6=Giallo;7=Fucsia; 8=Celeste
'Range("N1").Value = Range("N1").Value + 1
End Sub


Questa macro ricalcola il workbook e si riavvia dopo 5 secondi, e cosi’ via fintanto che in una cella (ho usato M1, ovviamente puoi usare quella che ti fa piu’ comodo) c’ e’ un valore diverso da 0.
Quindi:
-copia la macro su un foglio Modulo di codice (Alt-F11 per aprire il vba editor; se nel frame “Progetto” a sx c’ e’ una cartelletta “moduli” sotto l’ elenco dei fogli del tuo file, fai doppioclick per aprire Modulo1; se non c’ e’, fai Inserisci ->Modulo; nel frame di sx di Modulo1 incolla il codice di cui sopra)
-modifica se necessario le variabili CellaFlag (indirizzo della cella usata per enable/disable) e DeltaT (tempo di re-start)
-assegna alla macro un tasto di scelta rapida (da Excel: Strumenti ->Macro ->Macro; selezioni la macro Restarta dall’ elenco; pigi “Opzioni”, e nell’ area “Tasto di scelta rapida” inserisci R (maiuscolo); chiudi con Ok e con x.

Uso:
Inserisci il flag 1 nella cella M1 (o in quella che tu hai deciso di usare modificando la variabile CellaFlag; premi Contr-Maiusc-R.

La macro viene avviata e si rischedula ogni tot secondi (come variabile DeltaT) fintanto che M1 non viene settato a 0. Mentre la rischedulazione e’ attiva, la cella M1 e’ colorata in Rosso (se vuoi un altro colore, cambia l’ indice come nei commenti), quando e’ disattiva (cella M1 = 0) il colore viene rimosso.

Nota che potresti anche attivare una doppia, tripla, etc schedulazione, rilanciando la macro Restarta (Contr-Maiusc-R) mentre c’ e’ gia’ una schedulazione attiva; questo potrebbe raddoppiare, triplicare, etc la frequenza di esecuzione; ma potrebbe anche portare a incasinare excel in caso di esecuzioni troppo ravvicinate. Suggerisco quindi di schedulare la macro 1 sola volta e di evitare un restart fintanto che M1 e’ colorata; se vuoi una indicazione visiva della frequenza di restart, togli l’ apice in testa all’ istruzione Range("N1").Value etc etc: ad ogni ciclo N1 verra' incrementato di 1 (ovviamente N1 deve essere una cella disponibile, altrimenti cambia l’ indirizzo).

Nota che potresti usare anche solo:
Codice: Seleziona tutto
Sub Restarta()
Calculate
Application.OnTime Now + TimeValue("00:00:05"), "Restarta"
End Sub


Ma credo che le istruzioni aggiuntive abbiano la loro utilita’.

Una ultima domanda, che potrebbe rendere superfluo tutto cio’ che ho detto sopra: ma perche’ vuoi aggiornare ogni tot secondi? Hai disabilitato volontariamente il ricalcolo Automatico? Quale e’ la natura e l’ origine dei tuoi dati? Perche’ non si possono aggiornare “quando serve”, cioe’ solo dopo che e’ cambiato qualche cosa?

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

Postdi xing83 » 24/10/06 13:29

xkè voglio creare una specie di contaytore che mi calcoli quanto guadagno ogni secondo, e appunto deve aggiornarsi ogni secondo.
xing83
Utente Senior
 
Post: 289
Iscritto il: 21/01/03 00:24

Postdi Anthony47 » 24/10/06 21:35

Non e' che rischi di avere un overflow sulla capacita' delle celle excel?? ;)

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

Postdi gimar » 24/08/07 17:20

dunque allora piu' o meno le istruzioni saranno queste :
Sub Restarta()
Calculate
Application.OnTime Now + TimeValue("00:03:00"), salva

End Sub
sub salva ()
ActiveWorkbook.SaveAs Filename:= _
"C:\Documents and Settings\leonardo\Documenti\pippo.xls", FileFormat:= _
xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
, CreateBackup:=False
End Sub

o sbaglio ????
Nella valle dei ciechi,un orbo é RE.!
gimar
Utente Junior
 
Post: 63
Iscritto il: 19/05/06 18:31
Località: perugia

Postdi gimar » 24/08/07 17:21

dunque allora piu' o meno le istruzioni saranno queste :
Sub Restarta()
Calculate
Application.OnTime Now + TimeValue("00:03:00"), salva

End Sub
sub salva ()
ActiveWorkbook.SaveAs Filename:= _
"C:\Documents and Settings\Documenti\pippo.xls", FileFormat:= _
xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
, CreateBackup:=False
End Sub

o sbaglio ??
Nella valle dei ciechi,un orbo é RE.!
gimar
Utente Junior
 
Post: 63
Iscritto il: 19/05/06 18:31
Località: perugia


Torna a Applicazioni Office Windows


Topic correlati a "aggiornare il foglio di excel ogni secondo automaticamente":


Chi c’è in linea

Visitano il forum: Nessuno e 37 ospiti