Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

se l'orario nella cella è maggiore di OGGI(), colora lo sfondo in giallo

Ultimo Aggiornamento: 27/10/2021 12:48
Post: 68
Registrato il: 01/06/2016
Città: PISA
Età: 64
Utente Junior
2003
OFFLINE
05/10/2021 17:31

Buon pomeriggio,
come al solito alcuni "meccanismi" non riesco a realizzarli se non con il vostro grandissimo aiuto!!!
in un foglio di excel 2003 (la faccio breve con un piccolo esempio) inserisco manualmente (e man mano) da A1 a A4 l'orario di inizio pausa pranzo dei 4 equipaggi; tramite una semplice formula, nelle adiacenti celle, da B1 a B4, compaiono gli orari di termine pausa;
in pratica se nella cella (ad esempio) A3 ci scrivo 13.40, nella cella B3 comparirà 14.10 (cioè 13,40+ 30 minuti di pausa), e fin qui non ho problemi.
Mi piacerebbe, tramite codice VBA, far si che, non appena l'ora attuale (funzione OGGI()) combacia con l'orario visualizzato nella cella B3, quest'ultima si colorasse (in modo dinamico) come sfondo di colore giallo (colore che, quando non è presente alcun orario in B3, ritornasse al colore di sfondo precedente); questo per allertare e rendere anche visivamente che l'equipaggio in questione ha terminato la pausa e, quindi, nuovamente disponibilie.
Spero di essere stato chiaro nell'esprimermi e chiedo, come al solito...la vostra magia!
Grazie infinite, come sempre, per la vostra pazienza.
Elio
🙏
EcoBand
Post: 6.549
Registrato il: 14/11/2004
Utente Master
Office 2019
ONLINE
06/10/2021 10:42

Ciao Elioeco, la funzione OGGI() non riporta l'orario ma la data, dovresti usare la funzione "ADESSO()" per avere data ed orario, formattando la cella come orario.

A questo punto seleziona tutte le celle delle quali devi fare il confronto e nella Formattazione Condizionale scegli "Formatta solo le celle che contengono" Valore "=>" uguale o maggiore della cella dove hai inserito la formula "ADESSO()" mettendo indirizzo assoluto, poi inserisci il formato che desideri.

altrimenti metti un esempio di come vorresti la soluzione anche fatta manualmente.

Ciao By Sal (8-D
[Modificato da by sal 06/10/2021 10:44]
se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
Post: 2.454
Registrato il: 10/10/2013
Città: VICENZA
Età: 69
Utente Veteran
365
OFFLINE
06/10/2021 11:31

ciao
by sal

con ADESSO() e un orario non funziona

ADESSO() è data ora
per estrarre l'orario si deve usare RESTO()

detto questo
non può funzionare in formattazione condizionale nè su cella

ADESSO() cambia valore solo al ricalcolo
perciò se non scrivi qualche cosa non ti colora la cella
poi ci vorrebbe una doppia variabile
tipo
=E(Q7<=RESTO(ADESSO();1);Q7>0)

Post: 6.550
Registrato il: 14/11/2004
Utente Master
Office 2019
ONLINE
06/10/2021 14:45

Ciao Federico, il problema principale è sapere come vengono scritti gli orari sul suo foglio, se sono orari oppure qualche altra cosa.

poi lo sai l'orario come la data è un numero seriale, e credo che facendo il confronto come ho detto dovrebbe risalire se si è superato il limite orario.

comunque resta sempre da sapere Elioeco se inserisce un esempio.

Ciao By Sal (8-D
se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
Post: 2.455
Registrato il: 10/10/2013
Città: VICENZA
Età: 69
Utente Veteran
365
OFFLINE
06/10/2021 15:12

ciao

è relativo se scrivi con o senza la data davanti
levi la funzione RESTO()

il fatto è che ADESSO() non si attiva se non con un ricalcolo

ADESSO() é 01/01/2021 14:22:01

rimane statico fino a che il foglio non fa il ricalcolo.Questo vale anche per la formattazione.

esempio
=E(Q7<=RESTO(ADESSO();1);Q7>0)
funziona bene
ma si attiva solo al ricalcolo perciò o ogni minuto hai un ricalcolo o non funziona.

anche con il vba è un bel lavoro

puoi usate
time
now
es.
CELLS(1,1):value =Time
ma è statica devi legarla a qualche evento.

perciò o la leghi ad un temporizzatore
(avresti una macro sempre in attività)

si può optare
a

Worksheet_SelectionChange
e creare la macro di formattazione

ma questa è roba tua😀
[Modificato da federico460 06/10/2021 15:13]
Post: 6.551
Registrato il: 14/11/2004
Utente Master
Office 2019
ONLINE
06/10/2021 18:02

Ciao Federico, si ha ragione per la staticità della Funzione "Adesso()" ma confido nel fatto che inserisca un orario per l'aggiornamento delle funzioni.

altrimenti come hai detto si dovrebbe usare il VBA però senza macro pensavo di usare l'activate del Foglio per l'aggiornamento delle formule.

Ciao Salvatore (8-D
se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
Post: 68
Registrato il: 01/06/2016
Città: PISA
Età: 64
Utente Junior
2003
OFFLINE
07/10/2021 15:20

in realtà quando inserisco nella cella l'ora in cui l'equipaggio va in pausa, automaticamente mi appare, nella cella adiacente, l'orario di fine pausa prevista; non esiste un modo (anche in vba) per far si che, nel momento in cui l'orario del PC supera l'orario scritto nella cella, automaticamente i cambia il colore di sfondo della cella di orario fine pausa, senza che io faccia qualcosa?
Vi ringrazio innanzitutto per aver preso a cuore il mio problema nonchè per la pazienza.
Grazie davvero.
Allego un foglio per far capire meglio l'effetto che vorrei e, nell'esempio, l'orarto del PC segnava le ore 16:19.
[Modificato da elioeco 07/10/2021 16:20]
EcoBand
Post: 6.555
Registrato il: 14/11/2004
Utente Master
Office 2019
ONLINE
08/10/2021 10:50

Ciao per avere questo devi avere una macro sempre attiva, che controlli costantemente l'orario aggiornando l'orario della pausa.

ti preparo una macro che faccia il lavoro

Ciao By Sal (8-D
se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
Post: 6.556
Registrato il: 14/11/2004
Utente Master
Office 2019
ONLINE
08/10/2021 12:05

Ciao Ecco il tuo file, ho messo 2 pulsanti uno di avvio dell'orologio ed un altro per il Arresto, nel frattempo potrai lavorare tranquillamente, noterai solo un piccolo sfarfallamento.

Ciao By Sal (8-D

se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
Post: 69
Registrato il: 01/06/2016
Città: PISA
Età: 64
Utente Junior
2003
OFFLINE
12/10/2021 19:57

Mi scuso se ho impiegato del tempo per farmi vivo ma quando c'è da lavorare...
In realtà la soluzione, probabilmente, è più semplice (per voi) di quanto sembra, poichè il foglio, in realtà, viene aperto soltato per inserire l'orario di inizio pausa e/o per controllare se qualcuno l'ha già finita. Pertanto l'ora attuale può essere gestita (aggiornata) ogni qualvolta si entra questo foglio (legato ad altre cartelle per prendere dati come la SIGLA MEZZO, etc. (vedi file allegato). Pertanto il discorso di avviare/fermare il tempo con i due pulsanti dovrebbero venire a cadere (credo).
Ho cercato di adattare un pò del vba che hai inserito nel file ma, probabilmente sbaglio qualcosa, specie per la formattazione condizionata che mi sta facendo uscire pazzo.
Infatti, proprio perchè stremato da un intero pomeriggio a fare prove e controprove sulle varie celle (per quanto riguarda la formattazione oraria delle stesse) e la formattazione condizionale della colonna FINE PAUSA, senza cavarne un ragno dal buco, ti allego il file così com'è, sperando che tu possa dirmi dov'è che sbaglio!!!
Probabilmente alcune celle non verrano valorizzate proprio per il discorso che vengono compilate automaticamente da file esterni (ma questo non dovrebbe essere da ostacolo, visto che l'inizio pausa è un dato inserito dall'operatore e, in automatico, valorizza quindi l'orario di fine pausa).
La password per sbloccare il foglio è "ecoband" (e non sto a spiegarti del perchè c'è: quando hai dei collaboratori duri di comprendonio...)
Per l'ora inizio pausa faccio utilizzare il punto presente sul tastierino numerico (sempre per favorire i "duri di comprendonio" dei colleghi.
Confido nella tua pazienza e di chiunque possa risolvere il problema.
Grazie di tutto.
Elio

PS - Ho notato che sui PC con Windows 7 e Windows 10 la data viene gestita bene; sui PC con Windows XP, no: nella cella "aggiornamento delle ore:", nonostante sia formattata bene ("13.30") riporta come data 01/01/1900 e come "ora" un orario sballato. Non so se questo può essere d'aiuto per risolvere...
[Modificato da elioeco 13/10/2021 10:20]
EcoBand
Post: 70
Registrato il: 01/06/2016
Città: PISA
Età: 64
Utente Junior
2003
OFFLINE
18/10/2021 10:48

dov'è che sbaglio (per avere lo stesso risultato, sia che io usi un PC con Windows 7 o 10, sia che usi un PC con Windows XP)?
[SM=x423057] [SM=x423047]
EcoBand
Post: 71
Registrato il: 01/06/2016
Città: PISA
Età: 64
Utente Junior
2003
OFFLINE
27/10/2021 12:48

Abbandonato?
...forse ho detto qualcosa d offensivo o inadeguato?
se così fosse chedo umlmente scusa poichè non era nelle mie intenzioni; altrimenti non capisco perchè non ho avuto risposta (risolutiva o no) alla mia ultima richiesta....
se qualcuno sa come fare ne sarei felicissimo.
Grazie, comunque vada.
EcoBand
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 12:03. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com