Zaslal/a vovka.h 9.2.2016 9:13
Slavná chyba Excelu, údajně zděděná z Lotus 1-2-3, pokládá datum 29.2.1900 za existující, i když rok 1900 není přestupný.
Při ladění algoritmu, který pracuje s funkcí VBA Format jsem právě zjistil, že den nula se v ní posunul z 31.12.1899 na 30.12.1899. Zpozorněl jsem a zkusil jsem zadat slavné 29.2.1900. A ejhle! Funkce Format toto datum pokládá za nepřípustné. Den s pořadovým číslem 60 je 28.2.1900, číslo 61 má 1.3.1900. Slavná chyba pro funkci Format neplatí!
Bohužel jsem se radoval jen chvilku. Pro přímé zadání datumu do buňky, naformátované jako "d.mm.rrrr", dál platí, že den 0 je 31.12.1899 a že den 60 je dále neexistující 29.2.1900.
K nápravě fakticky nedošlo, jen Excel má rozostřené vidění prvních 60 dnů v systému 1900. V tomto období numerický formát buňky vidí datum od 31.12.1899 do 29.2.1900, zatímco funkce Format stejné období vidí od 30.12.1899 do 28.2.1900. Počínaje dnem 61 funguje převod na datum shodně a správně pro oba typy zobrazení.
Dodatek: až doteď jsem se domníval, že funkce Format ve VBA a funkce listu HODNOTA.NA.TEXT pracují ve shodě. V případě dne 60 to neplatí! Tento den nadále funkce listu převádí na neexistující 29.2.1900...
Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.
Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.