Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

aggiornamento 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

aggiornamento foglio

Postdi larzillo » 27/09/16 21:35

salve ,
ho una cartella excell con alcuni fogli di lavoro , in uno di questi lavora un file che si aggiorna in automatico ogni x tempo, preleva alcuni dati(da celle collegate in DDE) e li incolonna per costruire un grafico, risultato di veri giri su internet , sembra tutto ok ,
il grosso problema che ho è che ogni volta che aggiorna i dati se sto lavorando su altri fogli della cartella , mi riporta sempre al foglio che si aggiorna , per esempio la cartella ha una decina di fogli su ogni foglio posso fare cose differenti , il foglio 7 (chiamato "vola") è quello con l'aggiornamento in automatico, se sto lavorando o anche se ho solo aperto il foglio 2 , quando si aggiorna mi riapre in automatico il foglio 7 impedendomi di continuare a lavorare sul foglio dove stavo in precedenza . allego il file in oggetto in attesa di suggerimenti grazie ovviamente vorrei che il foglio con l'aggiornamento in automatico , continuasse ad aggiornarsi , senza riportarmi ogni volta al foglio stesso.
Codice: Seleziona tutto
Public Esegui As Double
Public Const Temp = "MiaMacro"
 
Sub Timer()
 Sheets("vola").Activate
 Range("a6").Interior.ColorIndex = 10
 Range("a6").Select
 Range("a6") = "ATTIVO"
    Esegui = Now + TimeValue("00:00:20")
    Application.OnTime earliesttime:=Esegui, procedure:=Temp, schedule:=True
End Sub
 
Sub MiaMacro()
Application.Calculate
Range("C" & Range("C" & Rows.Count).End(xlUp).Offset(1).Row) = Range("A4")
Range("D" & Range("D" & Rows.Count).End(xlUp).Offset(1).Row) = Range("A1")
Range("E" & Range("E" & Rows.Count).End(xlUp).Offset(1).Row) = Range("A2")

    Call Timer
End Sub
 
Sub StopTimer()
    On Error Resume Next
    Sheets("vola").Activate
    Range("a6").Interior.ColorIndex = 0
    Range("a6").Select
    Range("a6") = "FERMO"
    Application.OnTime earliesttime:=Esegui, procedure:=Temp, schedule:=False
End Sub


larzillo
Utente Junior
 
Post: 26
Iscritto il: 20/09/15 22:55

Sponsor
 

Re: aggiornamento foglio

Postdi Anthony47 » 27/09/16 23:08

Allora devi specificare nelle istruzioni a quali fogli le operazioni si riferiscono, invece di attivare il foglio. Nel caso di Timer, invece di
Sub Timer()
Sheets("vola").Activate
Range("a6").Interior.ColorIndex = 10
Range("a6").Select
Range("a6") = "ATTIVO"
Esegui = Now + TimeValue("00:00:20")
Application.OnTime earliesttime:=Esegui, procedure:=Temp, schedule:=True
End Sub


Codice: Seleziona tutto
Sub Timer()
 With ThisWorkbook.Sheets("vola")
    .Range("a6").Interior.ColorIndex = 10
'    .Range("a6").Select
    .Range("a6") = "ATTIVO"
    Esegui = Now + TimeValue("00:00:20")
    Application.OnTime earliesttime:=Esegui, procedure:=Temp, schedule:=True
End With
End Sub


Non l'hai detto (perche' forse non te ne sei accorto?), ma immagino che oggi la Sub SiaMacro scriva i dati a caso sul primo foglio del primo file che gli risulta attivo; infatti anche essa e' da aggiornare con lo stesso accorgimento:
Codice: Seleziona tutto
With ThisWorkbook.Sheets("Boooh")
   . Range("C" & Range("C" & .Rows.Count).End(xlUp).Offset(1).Row) = .Range("A4")
'etc etc
End with

Se e' da aggiornare analogamente anche la Sub StopTimer dipende da come essa e' attivata.

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

Re: aggiornamento foglio

Postdi larzillo » 28/09/16 13:21

Codice: Seleziona tutto
Public Esegui As Double
Public Const Temp = "MiaMacro"
 
Sub Timer()
 With ThisWorkbook.Sheets("vola")
 Range("a6").Interior.ColorIndex = 10
 Range("a6").Select
 Range("a6") = "ATTIVO"
    Esegui = Now + TimeValue("00:00:20")
    Application.OnTime earliesttime:=Esegui, procedure:=Temp, schedule:=True
    End With
End Sub
 
Sub MiaMacro()
With ThisWorkbook.Sheets("vola")
Application.Calculate

Range("C" & Range("C" & Rows.Count).End(xlUp).Offset(1).Row) = Range("A4")
Range("D" & Range("D" & Rows.Count).End(xlUp).Offset(1).Row) = Range("A1")
Range("E" & Range("E" & Rows.Count).End(xlUp).Offset(1).Row) = Range("A2")

    Call Timer
    End With
End Sub
 
Sub StopTimer()
    On Error Resume Next
    With ThisWorkbook.Sheets("vola")
    Range("a6").Interior.ColorIndex = 0
    Range("a6").Select
    Range("a6") = "FERMO"
    Application.OnTime earliesttime:=Esegui, procedure:=Temp, schedule:=False
    End With
   
End Sub


]
ho corretto come hai suggerito(spero di aver fatto bene)rilevo i seguenti problemi
1- quando attivo nel foglio vola il pulsante start , parte ed esegue correttamente (come prima) tutto
se cambio foglio (qualsiasi) nel foglio dove mi trovo mi da errore di runtine 1004 e al controllo mi evidenzia in giallo la parte di codice dove imputo il coloreindex 10 , e tornando al foglio vola l'aggiornamento è bloccato ....
non capisco come devo procedere
larzillo
Utente Junior
 
Post: 26
Iscritto il: 20/09/15 22:55

Re: aggiornamento foglio

Postdi Anthony47 » 28/09/16 13:54

Ti sono sfuggiti dei piccoli "punto" e "apostrofo", che però nella sintassi del vba sono importanti...
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: aggiornamento foglio

Postdi larzillo » 28/09/16 15:23

Codice: Seleziona tutto
Public Const Temp = "MiaMacro"
 
Sub Timer()
 With ThisWorkbook.Sheets("vola")
 .Range("a6").Interior.ColorIndex = 10
'  .Range("a6").Select
 .Range("a6") = "ATTIVO"
    Esegui = Now + TimeValue("00:00:20")
    Application.OnTime earliesttime:=Esegui, procedure:=Temp, schedule:=True
    End With
End Sub
 
Sub MiaMacro()

Application.Calculate
With ThisWorkbook.Sheets("vola")
.Range("C" & .Range("C" & Rows.Count).End(xlUp).Offset(1).Row) = .Range("A4")
.Range("D" & .Range("D" & Rows.Count).End(xlUp).Offset(1).Row) = .Range("A1")
.Range("E" & .Range("E" & Rows.Count).End(xlUp).Offset(1).Row) = .Range("A2")

    Call Timer
    End With
End Sub
 
Sub StopTimer()
    On Error Resume Next
    With ThisWorkbook.Sheets("vola")
    .Range("a6").Interior.ColorIndex = 0
 '   .Range("a6").Select
    .Range("a6") = "FERMO"
    Application.OnTime earliesttime:=Esegui, procedure:=Temp, schedule:=False
    End With
   
End Sub


ho corretto le dimenticanze
ora quando mi sposto su un foglio diverso da vola quando si aggiorna non ritorna piu al foglio vola
nel foglio vola al comando start la cella "attivo" si colora di verde come previsto
pero i dati non vengono piu copiati ,nelle colonne previste, anche se mi accorgo che il programmino si attiva alla temporizzazione prevista , perche il puntatore del mouse da punta si trasforma in cerchietto ......
resto in attesa .....vedi se ho corretto bene...
larzillo
Utente Junior
 
Post: 26
Iscritto il: 20/09/15 22:55

Re: aggiornamento foglio

Postdi larzillo » 28/09/16 16:39

sono la solita capra , ma tanto sei abituato..... ora corretto bene e funge tutto
grazie
larzillo
Utente Junior
 
Post: 26
Iscritto il: 20/09/15 22:55


Torna a Applicazioni Office Windows


Topic correlati a "aggiornamento foglio":


Chi c’è in linea

Visitano il forum: Nessuno e 20 ospiti