Storico discussioni

Auto run macro di Max
Ciao a tutti !
scusate ma sono alle prime armi quindi la mia domanda potrebbe risultare a molti di voi banale. ho un programma che cattura delle quotazioni in tempo reale di quotazioni di azioni e poi li scarica su un foglio excel. dopo aver creato una piccola macro come faccio a far in modo che la macro giri sempre senza che io debba premere f5 o run. la quotazione dura ore e mi serve che questo macro mi giri automaticamente. grazie

di Enzo
La routine qui sottto fa partire automaticamente una macro chiamata macro 1 ogni 60 secondi per otto volte.
puoi adattarla come vuoi
ciao

 
For I = 60 To 68
Dim TempoIniziale As Long
    TempoIniziale = Timer
 Application.Run "Cartel2!MACRO1"
 While Timer < (TempoIniziale + I)
        DoEvents
    Wend
    Next I
End Sub

di Mauro
Grazie al metodo ontime è possibile lanciare una routine ad una determinata ora. usato in ricorsione si può pianificare ogni tot di tempo.
 
Private Sub Workbook_Open()
    Application.OnTime Now + TimeValue("00:00:15"), "my_proc"
End Sub

Private Sub my_proc()
    MsgBox "visualizza il messaggio dopo 15 secondi"
    Application.OnTime Now + TimeValue("00:00:15"), "my_proc"
End Sub

Auto run di Max
La mia ignoranza e' tale che mi serve un ulteriore aiuto, il nome della mia macro e quote quando vado a sostituire il nome quote con my_proc, mi appare un messaggio the macro "c:\documentandsetting\max1\desktop[quote.xls]quote" cannot be found. che cosa devo fare.
 
Private Sub Workbook_Open()
    Application.OnTime Now + TimeValue("00:00:15"), "my_proc"
End Sub

Private Sub my_proc()
    MsgBox "visualizza il messaggio dopo 15 secondi"
    Application.OnTime Now + TimeValue("00:00:15"), "my_proc"
End Sub

Ciao max di Apoben64
Riprova così !
nella sezione scambio files , troverai il file sull'esempio del codice di mauro.

se vuoi approfondire il tema ti consiglio di andare a vedere questo link:
http://ennius.altervista.org/mike/procedure/mikevba111.htm

ciao, e facci sapere !
Private Sub Workbook_Open()
    Application.OnTime Now + TimeValue("00:00:15"), "my_proc"
End Sub

Private Sub my_proc()
    MsgBox "visualizza il messaggio dopo 15 
End Sub


Auto run di Max
Sono un disastro, provo quello che mi suggerite ma non riesco proprio a farla partire, l'unica cosa e:
sub worksheet_calculate()
updatebars
end sub

cosi'mi aggiorna le mie quotazione automaticamente, non mi pareva vero con una cosa cosi' stupida, poi mi sono accorto che non funziona bene, lanciando la macro "updatebars" io ho una serie di dati di borsa a 5 minuti e l'ultima barra si aggiorna automaticamente tramite un dde link. ma come tocco una cella col mouse la stessa lista mi parte da quella cella e cosi' se seleziono con il mouse la cella accanto, sovrapponendomi le liste creando un casino.
cosi'ora aggiorno automaticamente ma non posso lavorarci sopra in nessun caso.
ho provato anche i suggerimenti che mi avete dato ma niente da fare.
?????
grazie a tutti

Per max di Apoben64
Ciao, in primis volevo chiederti se avevi visionato il link che ti ho segnalato e scaricato l'esempio sulla base del codice di mauro.
in secundis ti allego questo codice che io uso un file in cui ho parecchi query web e dati da scaricare , e può fare al caso tuo.
questa macro non fà altro che all'apertura del tuo file (evento workbook_open(), ogni 10 minuti,( ma è un dato che puoi cambiare) ti lancia la tuamacro , che scarica i dati.
prova , se hai dei problemi , allega il tuo file nella sezione scambio files e vediamo cosa possiamo fare !.
Private Workbook_open()
Call Tempo
End Sub


Sub Tempo()
Dim pausetime, start
pausetime = 1200  ' secondi di attivazione  in questo caso 10 minuti
start = Timer
Do
DoEvents
If Timer > start + pausetime Then
Call TuaMacro ' metti il nome della tua macro
start = Timer
End If
Loop
End Sub

Cognolato Studio © 2005