< návrat zpět

MS Excel


Téma: zjednodušené zadávání času do buňky formátu 0:00 rss

Zaslal/a 15.1.2018 22:29

Ahoj, trápím se s tím už pár hodin a pořád to nefunguje spolehlivě. O co jde: do sloupečku, kde se zadává čas ve formátu s dvojtečkou např. 8:25 aby to zadání fungovalo místo dvojtečky za použití čárky na numerické klávesnici.
Tedy že bych napsal 8,25 a událostní kód na listě by to v té buňce změnil na 8:25. Potíž je v tom, že se v té buňce objeví údaj 8.1.1900 6:00:00. Mám takové krkolomné makro, kde se z toho snažím vypreparovat dny, hodiny a minuty - to se jakž takž daří, ale zpětně z toho složit čas je fakt rébus. Zhruba polovinu časů to rozluští správně, ale u jiných čísel mi to hodí nějaký ujetý čas.

A teď jsem navíc zjistil, že se i ty časové formáty se (alespoň s tím mým makrem) chovají různě, tedy že není jedno jestli tam je NumberFormat = "[h]:mm" anebo "h:mm;@". Je mi jedno jestli tam bude ten či onen formát, hlavně aby to excel měl ve formátu času, neboť z toho vychází při počítání délky události v hodinách.

Přidání pomocného sloupce není povoleno. Cílem je umožnit zadávání času jednou rukou, proto ta čárka. Možná to někomu může přijít jako vrchol lenosti, ale vzhledem k množství zadávaných údajů by to byla významná pomoc.

Předem dík za alespoň nakopnutí

Zaslat odpověď >

#039074
avatar
Omylem mně to odhlásilo, nejsem anonym ani robot :)citovat
#039075
avatar
Z principu nahrazení jedné čárky je prasečina. Budiž, v Možnostech si nastavte automatické opravy, které vám dvě čárky (lépe třeba dvě hvězdičky) nahradí za tečku. Jedno klepnutí navíc vás nezabije.citovat
#039091
avatar
Tak to byla z mé strany totální slepota!
Jasně, místo čárky použiju hvězdičku (nebo dvě) a je to 1

Dík moc, vlákno se může uzavřítcitovat
#039092
elninoslov
Hmm, no ono "nahradiť" tú čiarku dvojbodkou tak, aby vznikol správny zamýšľaný čas nieje problém, rozdelením desatinnej a nedesatinnej časti a použitím TimeSerial(). Ale vidím tam problém, čo ak niekto zadá čas v korektnom formáte 8:25 (nie 8,25)? Vy nájdete v procedúre Worksheet_Change desatinné číslo, ktoré už zodpovedá desatinnému číslu skutočného času, ale to neviete, lebo pre makro to bude zase iba číslo, ktoré treba zmeniť na "správnu" formu čísla času - teda ten čas pokaká. Zatiaľ ma nenapadá možnosť, ako zistiť či bolo zapísané desatinné číslo 8,25, alebo čas 8:25, lebo v oboch prípadoch dostanete až výsledok = desatinné číslo.
Ak ten oddeľovací znak bude iný ako čiarka, tak sa to bude dať identifikovať a spracovať. Ale zase nesmie to byť bodka na EN Office, lebo tá je desatinným oddeľovačom na EN.citovat
#039119
avatar
např:If IsNumeric(Target.Text) Thencitovat
#039121
elninoslov
Neviem, ako toto pomôže. Skúste to rozvinúť. Neviem ako získať z práve zmenenej bunky naformátovanej ako čas (teda číslo) informáciu o tom, či bolo zadané:
• 8,25 - číslo s desatinnou čiarkou, ktorá má byť premenená na ":"
• 8:25 - čas vo formáte "h:mm", čo je tiež desatinné číslo
• 0,350694444444444 -prípadne ešte (to ale nepredpokladám) desatinné číslo, ako skutočné číslo času, reprezentujúce čas "8:25"
Příloha: zip39121_zadavanie-casu-a-cisla.zip (14kB, staženo 74x)
citovat
#039122
avatar
Já navrhoval dvě čárky, lépe dvě hvězdičky... jen jedna je prasárna.citovat
#039123
elninoslov
Myslím, že tak ako navrhujete, to bude asi najschodnejšie.citovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Helios iNuvio

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.

On-line nástroje