Anthony, ce la fai a spiegarmi cosa fa quella formattazione condizionale, almeno per una cella
Il quadro e' stato composto con molta pazienza, affinche' contenesse tutte le parole necessarie per la visualizzazione testuale dell'ora secondo la lingia inglese.
Nel file che pubblico (vedi piu' avanti) ho modificato il foglio originale affinche' l'ora visualizzata non sia "Adesso" ma quella impostata in P1, che a sua volta viene calcolata come Ora+Minuti+Secondi come sono impostati in Q2-R2-S2 (area in giallo).
Impostando tu l'ora voluta potrai vedere come i vari blocchi vengano visualizzati.
Essenzialmente le righe 5-6-3 sono usate per la gestionee dei minuti; mentre le righe 8:11 sono dedicate alla gestione delle Ore; su righe 7-8 ci sono le indicazioni Prima /Dopo; su riga 13 c'e' l'indicazione Ora esatta
L'abilita' dello sviluppatore e' stata quella di trovare posto per tutte queste combinazioni e contemporaneamente di trovare regole sintetiche di formattazione che consentano di selezionare un blocco o un altro
Nel foglio ci sono 6 formule per la formattazione condizionale:
- Codice: Seleziona tutto
1- =O((RIF.RIGA(C4)-RIF.RIGA($C$4)+2=n_1)*(RIF.COLONNA(C4)=RIF.COLONNA($C$3)+SE(t_1="";0;TROVA(t_1;INDICE(arr_c;n_1)))+RIF.RIGA(SCARTO($B$1;;;LUNGHEZZA(t_1)))-2))
2- =O(My_m=15;My_m=45)
3- =My_m>30
4- =MEDIANA(My_m;1;30)=My_m
5- =O((RIF.RIGA(C8)-RIF.RIGA($C$4)+2=n_2)*(RIF.COLONNA(C8)=RIF.COLONNA($C$3)+SE(t_2="";0;TROVA(t_2;INDICE(arr_c;n_2)))+RIF.RIGA(SCARTO($B$1;;;LUNGHEZZA(t_2)))-2))
6- =My_m=0
Non mi candido a fare il reverse engineering del foglio (e piu' facile fare una cosa che descrivere cosa e' stato fatto da un altro), ma per non abdicare in toto alle mie responsabilita' facciamo l'esempio delle ore 10:20, che vengono visualizzate come It is /twenty /past /ten
Nell'area in Grigio ho replicato come le formule di formattazione condizionale "abilitano" la visualizzazione delle celle nel quadro Nero, limitatamente alla parte dei minuti
Sono coinvolte in tutto 3 condizioni: una che riguarda tutta l'area, una che riguarda solo l'area grigio-scuro, una che riguarda lare grigio-chiaro
Impostando (in Q2-R2-S2, l'area in giallo) orari diversi vedrai nell'area Grigia quali celle dell'area Nera sono condizionate a visualizzarsi (quelle con "1")
Le celle della riga 4 in realta' sono gia' formattate per essere visualizzate, infatti nell'area Grigia non vedrai mai "1"
CIO' DETTO...
Mi sono applicato anche io e ho prodotto quanto presente nel secondo foglio del file che potete scaricare qui:
https://www.dropbox.com/s/smt0wxkq7oe26 ... .xlsm?dl=0
(il primo foglio contiene l'approfondimento dell'orologio presentato da Ricky)
E' un "digitale", e lavora su piu' lingue (quelle che parlo...; potete selezionarla in Y6).
La visualizzazione dell'ora e' controllata dalla formattazione condizionale tramite la formula
- Codice: Seleziona tutto
=NON(VAL.ERRORE(TROVA(STRINGA.ESTRAI($B$7;INT(RIF.COLONNA(B8)/7)+1;1);B8)))
Viene visualizzata in fondo anche la data completa, sempre nella lingua prescelta.
Potete aggiungere altre lingue, se disponete di un font che supporta quel linguaggio
La gestione e' fatta in AX1:AZ30
Non e' obbligatorio attivare le macro, ma sappiate che se non lo fate allora l'orologio sara' "statico", e si aggiornera' solo manualmente tramite F9, o comunque quando il foglio viene Calcolato (questo problema e' comune alla versione pubblicata da Ricky).
Inoltre la gestione dei font e delle lingue potrebbe essere monco.
Le macro presenti servono
1-per schedulare l'aggiornamento dell'orario ogni secondo
2-per impostare nell'intestazione il giusto font
Spero che possa scandire solo ore serene...