Buon giorno a tutti.
Che io abbia qualche difficoltà per la programmazione VBA….. OK, ma che una formula mi possa mandare in pallone……..!!!!
Passo a spiegare.
Le celle (del foglio attivo): E78, E80, E82, AJ9 e AL9, sono formattate come “data” mentre tutte le altre cui fa riferimento la formula sono formattate come “numero”; nella cella AJ5 compare un nominativo selezionato con casella a discesa; nelle descritte celle della colonna E sono inserite le date del 25 dic, 1 gen e 15 ago.
La cella AG21, dove è inserita la formula, deve restituire:
- “Natale”: qualora la cella E78 sia <= alla cella AL9 e che essa (E78) sia >= alla cella AJ9 e che il valore della cella di colonna 178 del foglio “Straordinari”sia = a quello della cella AJ20 del foglio attivo; tale condizione deve verificarsi “VERA” - quindi restituire “Natale” - anche se la data cella E78 non fosse ricompresa tra quella di AL9 e AJ9;
- “Capodanno”: qualora la cella E80 sia <= alla cella AL9 e che essa (E80) sia >= alla cella AJ9 e che il valore della cella di colonna 178 del foglio “Straordinari”sia <> da quello della cella AJ20 del foglio attivo;
- “Ferragosto”: qualora la cella E82 sia <= alla cella AL9 e che essa (E82) sia >= alla cella AJ9;
- se nessuna delle condizioni su riportate, ovvero se nella cella AJ5 non vi fosse alcuna selezione di nominativo, la cella in esame (AG21) deve restituire Zero.
Nella speranza che quanto sin qui detto fosse intellegibile, riporto la formula così come da me strutturata.
=SE(AJ20="";0;SE(E(O(VAL.ERRORE(AJ20=CERCA.VERT(AJ20;Straordinari!A320:HZ475;178;FALSO));E78>=AJ9;E78<=AL9));”Natale”;SE(EO(VAL.ERRORE(AJ20<>CERCA.VERT(AJ20;Straordinari!A320:HZ475;178;FALSO));E80>=AJ9;E80<=AL9));”Capodanno”;SE(E(E82>=AJ9;E82<=AL9);”Ferragosto”))))
Di primo acchito sembra che tutto funzioni….., ma non è così!
Se il valore della cella AJ20 fosse uguale a quello confrontato con “CERCA.VERT”, ancorché tra le date in AJ9 e AL9 non fosse ricompresa quella in E78 (Natale), correttamente (…. io dico) la formula restituisce “Natale”, ma…. qualora il valore di AJ20 fosse diverso da quello confrontato con “CERCA.VERT” tra le date in AJ9 e AL9 sia ricompresa quella in E80 (Capodanno), la formula restituisce sempre “Natale”.
Dove erro? S.O.S., help me please!!!
Cesare