[Risolto]Utilizzare una macro che sostituisca una Progress Bar
- Lanfranchi G.Luigi
- Messaggi: 116
- Iscritto il: venerdì 12 aprile 2019, 16:54
[Risolto]Utilizzare una macro che sostituisca una Progress Bar
Buongiorno.
Ho terminato il mio foglio di lavoro non senza alcune difficoltà (superate grazie a voi).
In questo foglio scarico in automatico dei dati utilizzando "collegamenti a file esterni".
Ho programmato di farlo ogni 10 min (nell'allegato abbassato a 30 sec per velocizzare).
Tutto benissimo.
Il problema è quando ho voluto aggiungere una Progress bar per visualizzare il tempo di attesa di ogni nuovo aggiornamento.
All'inizio ho cercato di usare una cella condizionata a barra ma utilizzando l'evento "Lo stato ' modificato' è cambiato" (unico purtroppo che va bene) non mi è stato possibile.
Allora ho scaricato dal sito una macro Progress bar che funziona benissimo ma che non posso utilizzare.
Se imposto tutto ad un minuto (Collegamento esterni + Progress bar) in effetti il collegamento avviene dopo due minuti.
In parole povere il tempo della Progress bar viene sommato al tempo impostato per l'aggiornamento.
Ho dato la colpa all'istruzione "Wait", posta all'interno di un ciclo "For Next", che congela tutto. Ho modificato il ciclo utilizzando While e wend con abbinato il comando timer ma il risultato non cambia.
Suggerimenti ?
Grazie.
PS: L'esempio che allego è basico quindi non pasticciate troppo con le celle.
Ho pensato anche di fare un escamotage ponendo la Progress bar a 9:58 e l'aggiornamento a 0:2 che sommati danno 10:00.
Comunque se qualcuno mi può dare altre soluzioni.....
Ho terminato il mio foglio di lavoro non senza alcune difficoltà (superate grazie a voi).
In questo foglio scarico in automatico dei dati utilizzando "collegamenti a file esterni".
Ho programmato di farlo ogni 10 min (nell'allegato abbassato a 30 sec per velocizzare).
Tutto benissimo.
Il problema è quando ho voluto aggiungere una Progress bar per visualizzare il tempo di attesa di ogni nuovo aggiornamento.
All'inizio ho cercato di usare una cella condizionata a barra ma utilizzando l'evento "Lo stato ' modificato' è cambiato" (unico purtroppo che va bene) non mi è stato possibile.
Allora ho scaricato dal sito una macro Progress bar che funziona benissimo ma che non posso utilizzare.
Se imposto tutto ad un minuto (Collegamento esterni + Progress bar) in effetti il collegamento avviene dopo due minuti.
In parole povere il tempo della Progress bar viene sommato al tempo impostato per l'aggiornamento.
Ho dato la colpa all'istruzione "Wait", posta all'interno di un ciclo "For Next", che congela tutto. Ho modificato il ciclo utilizzando While e wend con abbinato il comando timer ma il risultato non cambia.
Suggerimenti ?
Grazie.
PS: L'esempio che allego è basico quindi non pasticciate troppo con le celle.
Ho pensato anche di fare un escamotage ponendo la Progress bar a 9:58 e l'aggiornamento a 0:2 che sommati danno 10:00.
Comunque se qualcuno mi può dare altre soluzioni.....
- Allegati
-
- Esempio.ods
- Progress bar raddoppia il tempo di aggiornamento
- (75.2 KiB) Scaricato 78 volte
Ultima modifica di Lanfranchi G.Luigi il martedì 2 agosto 2022, 10:57, modificato 2 volte in totale.
LibreOffice ver. 7.5.3.2 - Windows 10 Pro 64 bit
Re: Problemi con la Progress bar
Non credo che tu possa collegare una progress bar all'aggiornamento perché questo non avviene tramite una macro sotto il tuo controllo.
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
- Lanfranchi G.Luigi
- Messaggi: 116
- Iscritto il: venerdì 12 aprile 2019, 16:54
Re: Problemi con la Progress bar
Patel GRAZIE per la risposta.
Purtroppo, per il momento, ci ho rinunciato.
Avevo provato anche ad utilizzare l'escamotage descritto precedentemente e funziona, ma non riesco più a chiudere l'applicazione perchè Calc mi dice che un programma basic sta lavorando. Ho dovuto utilizzare "Gestione attività" per sbloccare il pc.
Speravo di poter utilizzare una variabile interna a calc che adopera, per esempio, nel countdown impostato tra un aggiornamento web e l'altro....
Anche così però la vedo dura....
Spero in qualche buon anima che mi possa ancora aiutare....
Ciao.
Purtroppo, per il momento, ci ho rinunciato.
Avevo provato anche ad utilizzare l'escamotage descritto precedentemente e funziona, ma non riesco più a chiudere l'applicazione perchè Calc mi dice che un programma basic sta lavorando. Ho dovuto utilizzare "Gestione attività" per sbloccare il pc.
Speravo di poter utilizzare una variabile interna a calc che adopera, per esempio, nel countdown impostato tra un aggiornamento web e l'altro....
Anche così però la vedo dura....
Spero in qualche buon anima che mi possa ancora aiutare....
Ciao.
LibreOffice ver. 7.5.3.2 - Windows 10 Pro 64 bit
Re: Problemi con la Progress bar
In un primo momento avevo capito che ti serviva una progress bar per visualizzare l'attesa dell'aggiornamento, cioè azionare la progress bar durante l'aggiornamento, ma questo dura pochissimi secondi quindi sarebbe una cosa inutile oltre a non fattibile in quanto la macro bloccherebbe temporaneamente l'aggiornamento, poi rileggendo
ho capito che la progress bar deve entrare in funzione nei periodi di attesa tra gli aggiornamenti per avvisare l'utente quanto tempo rimane al prossimo aggiornamento, cosa ancora meno fattibile a MIO avviso in quanto si farebbe uso perennemente di una macro andando ad impegnare costantemente le risorse del pc.Lanfranchi G.Luigi ha scritto: ↑sabato 23 luglio 2022, 9:00 Il problema è quando ho voluto aggiungere una Progress bar per visualizzare il tempo di attesa di ogni nuovo aggiornamento.
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Openoffice 4.1.13 su windows 10
- Lanfranchi G.Luigi
- Messaggi: 116
- Iscritto il: venerdì 12 aprile 2019, 16:54
Re: Problemi con la Progress bar
Gaetanopr grazie per la risposta.
Si hai ragione, una progress bar come l'avevo pensata è irrealizzabile (credo).
Stavo ora cercando di utilizzare una cella condizionata a barra ma il problema si ripresenta uguale (se non peggio).
Come posso "chiudere" l'argomento ? Con la dicitura "risolto" non credo sia corretto.
Grazie ancora a tutti.
Si hai ragione, una progress bar come l'avevo pensata è irrealizzabile (credo).
Stavo ora cercando di utilizzare una cella condizionata a barra ma il problema si ripresenta uguale (se non peggio).
Come posso "chiudere" l'argomento ? Con la dicitura "risolto" non credo sia corretto.
Grazie ancora a tutti.
LibreOffice ver. 7.5.3.2 - Windows 10 Pro 64 bit
Re: Problemi con la Progress bar
Puoi usare una cella come timestamp, cioè stampi data e orario di ogni aggiornamento, oppure aggiungi 10 minuti all'orario corrente e lo scrivi su una cella in modo da sapere quando avverrà il prossimo aggiornamento.
L'argomento puoi lasciarlo aperto, in modo da poter ricevere qualche altro suggerimento utile.
L'argomento puoi lasciarlo aperto, in modo da poter ricevere qualche altro suggerimento utile.
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Openoffice 4.1.13 su windows 10
- Lanfranchi G.Luigi
- Messaggi: 116
- Iscritto il: venerdì 12 aprile 2019, 16:54
Re: Problemi con la Progress bar
Gaetanopr
Ottimi suggerimenti....farò così.
Ciao e grazie ancora.
Ottimi suggerimenti....farò così.
Ciao e grazie ancora.
LibreOffice ver. 7.5.3.2 - Windows 10 Pro 64 bit
Re: Problemi con la Progress bar
Non so se è la procedura pensata da Gaetanopr, ma il risultato è simile.
Ho creato un listener associato al range di celle che vengono aggiornate. Ad ogni aggiornamento, viene scritto l'orario di esecuzione e l'orario del prossimo.
Spero che possa essere utile.
Saluti.
Geo
Ho creato un listener associato al range di celle che vengono aggiornate. Ad ogni aggiornamento, viene scritto l'orario di esecuzione e l'orario del prossimo.
Spero che possa essere utile.
Saluti.
Geo
- Allegati
-
- Esempio2.ods
- (68.32 KiB) Scaricato 63 volte
LibO v.24 su Manjaro
- Lanfranchi G.Luigi
- Messaggi: 116
- Iscritto il: venerdì 12 aprile 2019, 16:54
Re: Problemi con la Progress bar
Grazie Geovign. Ottimo lavoro.
Avevo già risolto il problema con una Sub copiata dal "guida di librerie office" ( https://help.libreoffice.org/7.3/it/tex ... System=WIN ) che utilizza la funzione Timer.... ma penso che utilizzerò la tua macro perchè mi sembra più idonea.
A proposito mi sono accorto che il codice proposto dalla guida di librerie office a un bug.
Il calcolo dei minuti e delle ore viene fatto dividendo per 60 utilizzando una variabile long come recipiente.
Il calcolo viene stravolto e portato un ora avanti quando si supera la mezz'ora.
Questo succede perchè la variabile arrotonda alla cifra superiore i decimali che superano 0.5
Ho usato la funzione int() per risolvere il bug.
Questo il codice originale con il bug.
Questo il codice corretto.
Grazie ancora a tutti per i vostri preziosi suggerimenti.
Avevo già risolto il problema con una Sub copiata dal "guida di librerie office" ( https://help.libreoffice.org/7.3/it/tex ... System=WIN ) che utilizza la funzione Timer.... ma penso che utilizzerò la tua macro perchè mi sembra più idonea.
A proposito mi sono accorto che il codice proposto dalla guida di librerie office a un bug.
Il calcolo dei minuti e delle ore viene fatto dividendo per 60 utilizzando una variabile long come recipiente.
Il calcolo viene stravolto e portato un ora avanti quando si supera la mezz'ora.
Questo succede perchè la variabile arrotonda alla cifra superiore i decimali che superano 0.5
Ho usato la funzione int() per risolvere il bug.
Questo il codice originale con il bug.
Codice: Seleziona tutto
Sub ExampleTimer
Dim lSec As Long,lMin As Long,lHour As Long
lSec = Timer
MsgBox lSec, 0, "Secondi trascorsi da mezzanotte"
lMin = lSec / 60
lSec = lSec Mod 60
lHour = lMin / 60
lMin = lMin Mod 60
MsgBox Right("00" & lHour , 2) & ":"& Right("00" & lMin , 2) & ":" & Right("00" & lSec , 2), 0, "Sono le ore"
End Sub
Codice: Seleziona tutto
Sub ExampleTimer
Dim lSec as Long,lMin as Long,lHour as Long
lSec = Timer
MsgBox lSec, 0, "Secondi trascorsi da mezzanotte"
lMin = Int(lSec / 60)
lSec = lSec Mod 60
lHour = Int(lMin / 60)
lMin = lMin Mod 60
MsgBox Right("00" & lHour , 2) & ":"& Right("00" & lMin , 2) & ":" & Right("00" & lSec , 2), 0, "Sono le ore"
End Sub
Ultima modifica di charlie il domenica 31 luglio 2022, 11:14, modificato 1 volta in totale.
Motivazione: Formattato codice
Motivazione: Formattato codice
LibreOffice ver. 7.5.3.2 - Windows 10 Pro 64 bit
Re: Problemi con la Progress bar
Grazie per il riscontro.
Come avrai sicuramente già visto, per cambiare l'orario del prossimo aggiornamento, devi modificare l'istruzione all'interno della Sub RangeDiCelleModificate_modified
Quindi se imposti l'aggiornamento ogni 600 secondi (10 minuti), l'istruzione puoi modificarla anche così
Saluti
Geo
Come avrai sicuramente già visto, per cambiare l'orario del prossimo aggiornamento, devi modificare l'istruzione
Codice: Seleziona tutto
OraNuovoAggiornamento = CDate(OraAttuale)+TimeValue("00:00:30")
Quindi se imposti l'aggiornamento ogni 600 secondi (10 minuti), l'istruzione puoi modificarla anche così
Codice: Seleziona tutto
OraNuovoAggiornamento = CDate(OraAttuale)+TimeValue("00:00:600")
Geo
LibO v.24 su Manjaro
- Lanfranchi G.Luigi
- Messaggi: 116
- Iscritto il: venerdì 12 aprile 2019, 16:54
Re: Problemi con la Progress bar
Geovign grazie ancora per il chiarimento.
Sono oramai convinto di aver superato lo "scoglio" e il merito va a voi e ai vostri suggerimenti.
La chiudo qui...
Grazie a tutti.
Sono oramai convinto di aver superato lo "scoglio" e il merito va a voi e ai vostri suggerimenti.
La chiudo qui...
Grazie a tutti.
LibreOffice ver. 7.5.3.2 - Windows 10 Pro 64 bit
Re: [Risolto]Problemi con la Progress bar
Se metti Risolto dovresti cambiare titolo alla discussione, non hai usato la progress bar.
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
- Lanfranchi G.Luigi
- Messaggi: 116
- Iscritto il: venerdì 12 aprile 2019, 16:54
Re: [Risolto]Problemi con la Progress bar
Ok Patel....fatto.
Geo il tuo ultimo suggerimento è sbagliato.
OraNuovoAggiornamento = CDate(OraAttuale)+TimeValue("00:00:600").
Il programma si impianta e calc si chiude da solo senza salvare.
Funziona correttamente cosi
OraNuovoAggiornamento = CDate(OraAttuale)+TimeValue("00:10:00").
Ciao.
Geo il tuo ultimo suggerimento è sbagliato.
OraNuovoAggiornamento = CDate(OraAttuale)+TimeValue("00:00:600").
Il programma si impianta e calc si chiude da solo senza salvare.
Funziona correttamente cosi
OraNuovoAggiornamento = CDate(OraAttuale)+TimeValue("00:10:00").
Ciao.
LibreOffice ver. 7.5.3.2 - Windows 10 Pro 64 bit