Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

[Excel] Aggiornare automatico dati foglio

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

[Excel] Aggiornare automatico dati foglio

Postdi Roberto183 » 25/07/06 08:16

Buona giornata a tutti :)

Approfitto ancora una volta della vostra disponibilità e competenza in questo campo per me oscuro :)

Ho fatto la mia paginetta excel con tutti i dati che mi servono prelevati da un database esterno, a questo punto mi piacerebbe che questi dati si aggiornassero automaticamente, come posso realizzare una macro che rinfreschi il mio foglio excel? :)

Grazie.
Roberto.
Roberto183
Utente Junior
 
Post: 13
Iscritto il: 24/07/06 13:13

Sponsor
 

Postdi Anthony47 » 25/07/06 09:26

Puoi usare Application.OnTime per far partire una macro ogni xxx secondi/minuti/ore; esempio
Codice: Seleziona tutto
Application.OnTime Now + TimeValue("00:05:00"), " Macro1"

fara’ partire Macro1 dopo 5 minuti.
Metti questa istruzione in coda alla stessa Macro1, in modo che si autoscheduli, e fai partire la macro per la prima volta (tramite Strumenti ->Macro ->Macro, selezioni Macro1, Esegui; oppure tramite bottone; oppure tramite macro all’ apertura del foglio).

Queste informazioni ti dicono come ripetere ogni tanto tempo alcune istruzioni, non quali istruzioni eseguire; avendo preparato tu il foglio assumo che questo aspetto lo hai gia’ risolto.

Ciao,
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13892
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi Roberto183 » 25/07/06 09:35

Ti ringrazio Anthony, ma qual'è l'istruzione per fare il refresh?
é questo che non sono ancora riuscito a capire, cioè io ho scritto le formule nelle celle, ma come faccio a farle eseguire in automatico?
Roberto183
Utente Junior
 
Post: 13
Iscritto il: 24/07/06 13:13

Postdi Anthony47 » 25/07/06 09:57

Le formule vengono ricalcolate tutte le volte che cambiano i dati a cui esse fanno riferimento, SE l’ impostazione di ricalcalo e’ su “Automatico” (Strumenti ->Opzioni, tab Calcolo, spuntare Automatico in area Calcolo).

Ma forse e’ necessario che spieghi meglio cosa hai fatto e come lo hai fatto, che da lontano si vede poco..
Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13892
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi Roberto183 » 25/07/06 10:29

Le impostazioni sono come dici tu, però non funziona, e nemmeno l'F9 funziona, io ho inserito nelle celle delle funzioni che leggono dei valori da un database esterno, però se il valore nel database cambia, vorrei che si aggiornasse anche il valore nella cella, che invece resta all'ultimo valore letto, per ora riesco a farlo aggiornare solo cliccando sulla cella e facendogli rieseguire la funzione, mi piacerebbe creare una macro che facesse eseguire le funzioni contenute nelle celle periodicamente :)
Roberto183
Utente Junior
 
Post: 13
Iscritto il: 24/07/06 13:13

Postdi Anthony47 » 25/07/06 13:26

Posta le funzioni che hai scritto in un paio di celle, cosi' vediamo di cosa si tratta.
Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13892
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi Roberto183 » 25/07/06 14:23

Ciao Anthony, alla fine ci sono riuscito, non sò se il metodo è tra i più azzeccati, però funziona, ho fatto così :
Codice: Seleziona tutto
For i = 4 To 19
    ActiveSheet.Cells(i, 3).Value = ActiveSheet.Cells(i, 3).Formula
    ActiveSheet.Cells(i, 4).Value = ActiveSheet.Cells(i, 4).Formula
  Next i


Poi mi sono creato una macro che conta 15 secondi dopodichè chiama nuovamente la macro del refresh :)
Roberto183
Utente Junior
 
Post: 13
Iscritto il: 24/07/06 13:13

Postdi Anthony47 » 25/07/06 16:10

Funziona, quindi il metodo e' ottimo.

D' altra parte non conoscendo ancora che formule hai usato non saprei proprio che dire.

Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13892
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi Roberto183 » 25/07/06 16:47

Più che formule sono funzioni per leggere dei punti da un database esterno, una funzione ad esempio è questa :)
Codice: Seleziona tutto
=SIHGetRealtimeValueEx("NomeDB\NomePunto";"";0;"NomeComputer";0;"V";0;0;"")


*** il codice và messo usando il tasto code ....By Alex
Roberto183
Utente Junior
 
Post: 13
Iscritto il: 24/07/06 13:13

Postdi Roberto183 » 26/07/06 08:21

Ciao Alex, scusami per l'errore :)

Comunque ho visto che hai cambiato il titolo della discussione, credo che però il titolo esatto dovrebbe fare riferimento solo all'aggiornamento del foglio excel, perchè credo che la procedura che ho usato, serva per qualsiasi tipo di dato, non solo per dati prelevati da un database esterno.

Ciao.
Roberto.
Roberto183
Utente Junior
 
Post: 13
Iscritto il: 24/07/06 13:13

Postdi Alexsandra » 26/07/06 08:53

Hai ragione, lo cambio in "Aggiornamento automatico dati".

Un titolo esatto facilita la ricerca nella sezione e se mettiamo i codici e le formule usando l'apposito pulsante (Code) balzano subito all'occhio

Ciao
Avatar utente
Alexsandra
Utente Senior
 
Post: 2358
Iscritto il: 09/01/06 20:31

Postdi Roberto183 » 26/07/06 09:00

Si, la prossima volta lo userò anch'io, è la prima volta che scambio pezzi di codice in un forum, chissà che direbbe se lo sapesse il mio capo :D
Roberto183
Utente Junior
 
Post: 13
Iscritto il: 24/07/06 13:13

Re:

Postdi samanà » 25/07/09 19:50

Anthony47 ha scritto:Puoi usare Application.OnTime per far partire una macro ogni xxx secondi/minuti/ore; esempio
Codice: Seleziona tutto
Application.OnTime Now + TimeValue("00:05:00"), " Macro1"

fara’ partire Macro1 dopo 5 minuti.
Metti questa istruzione in coda alla stessa Macro1, in modo che si autoscheduli, e fai partire la macro per la prima volta (tramite Strumenti ->Macro ->Macro, selezioni Macro1, Esegui; oppure tramite bottone; oppure tramite macro all’ apertura del foglio).

Queste informazioni ti dicono come ripetere ogni tanto tempo alcune istruzioni, non quali istruzioni eseguire; avendo preparato tu il foglio assumo che questo aspetto lo hai gia’ risolto.

Ciao,


ciao a tutti sono nuovo del forum e alle prime armi con le macro.......spero di ricevere aiuto.
con varie ricerche sono riuscito a trovare delle macro che mi permettono di trovare min e max di un valore che cambia con un flusso di dati dde, ora voglio far eseguire queste macro a una certa ora ma con Aplication.OnTime oltre che eseguirla a una certa ora la macro viene eseguita subito?????
samanà
Newbie
 
Post: 7
Iscritto il: 25/07/09 19:18

Re: [Excel] Aggiornare automatico dati foglio

Postdi Anthony47 » 26/07/09 10:49

Ciao samana' e benvenuto nel forum.
L' istruzione citata pianifica solamente l' esecuzione di una macro; quindi se vuoi anche eseguire la macro inserirai una Call Macro1 (o come si chiama la tua macro) subito prima.
Se il tuo obiettivo e' eseguire "di tanto in tanto" la macro (e non 1 sola volta all' orario specificato), allora tra le altre discussioni che parlano di questo tema consiglio di guardare anche questa: viewtopic.php?t=52172 che contiene qualche suggerimento su come controllare la ripetizione della macro.

Ciao, fai sapere dove arrivi.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13892
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Excel] Aggiornare automatico dati foglio

Postdi samanà » 26/07/09 15:01

grazie Antony per l'interessamento e scusa l'ignoranza ma non ho capito dove inserire l'istruzione Call ti posto il mio semplice codice :
Codice: Seleziona tutto
Sub COPIA()
Application.OnTime ("15:50:00"), "COPIA"
    Range("K2:L2").Select
    Selection.Copy
    Range("N2:O2").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
End Sub
Sub COPIA_1()
Application.OnTime ("09:00:00"), "COPIA_1"
    Range("K2:L2").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("P2:Q2").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

End Sub


puoi cortesemente indicarmi dove posso inserire la stringa?
Visto che ci sono ti chiedo come si possono eseguire le due sub sopra citate con un unico pulsante?

Grazie mille!!!!
samanà
Newbie
 
Post: 7
Iscritto il: 25/07/09 19:18

Re: [Excel] Aggiornare automatico dati foglio

Postdi samanà » 06/09/09 08:22

Anthony47 ha scritto:Ciao samana' e benvenuto nel forum.
L' istruzione citata pianifica solamente l' esecuzione di una macro; quindi se vuoi anche eseguire la macro inserirai una Call Macro1 (o come si chiama la tua macro) subito prima.
Se il tuo obiettivo e' eseguire "di tanto in tanto" la macro (e non 1 sola volta all' orario specificato), allora tra le altre discussioni che parlano di questo tema consiglio di guardare anche questa: viewtopic.php?t=52172 che contiene qualche suggerimento su come controllare la ripetizione della macro.

Ciao, fai sapere dove arrivi.



ciao Anthony sapresti rispondermi al messaggio postato in precedenza qui sopra? grazie ciao ciao
samanà
Newbie
 
Post: 7
Iscritto il: 25/07/09 19:18

Re: [Excel] Aggiornare automatico dati foglio

Postdi Anthony47 » 06/09/09 19:17

La tua domanda mi era sfuggita... colpa (merito) delle ferie?
Pero' guardando le tue due macro esse contengono:
-la schedulazione della macro a una certa ora
-l' esecuzione di alcune istruzioni per copiare le celle K2:L2 in P2:Q2 (la mattina) e N2:O2 (il pomeriggio)
Ora la tua prima domanda era "voglio far eseguire queste macro a una certa ora ma con Aplication.OnTime oltre che eseguirla a una certa ora la macro viene eseguita subito?", e la seconda e' " dove inserire l'istruzione Call"; sono domande che non capisco completamente alla luce del codice.

A questo punto la cosa piu' probabile che mi viene in mente, e' che forse vorresti eseguire COPIA e COPIA_1 contemporaneamente; questo lo fai con una terza macro, ad esempio
Codice: Seleziona tutto
Sub AVVIA()
Call COPIA
Call COPIA_1
End Sub
Poi lancerai AVVIA (invece di Copia e Copia_1).
Se invece vuoi fare un' altra cosa, allora per favore prova a spiegarlo ancora.

Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13892
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "[Excel] Aggiornare automatico dati foglio":


Chi c’è in linea

Visitano il forum: Nessuno e 11 ospiti

cron