Ahojte,
prosím skorektnil by mi niekto n.u. ?
Ak bunka (1,10) obsahuje číslo -0,25 , t.j. v časovom formáte -06:00 hod.,
tak lblstav1.Caption = Format(D(1, 10) mi zobrazí správne -0,25, ale ak chcem formátovať čiže lblstav1.Caption = Format(D(1, 10), "hh:mm") tak mi síce zobrazí 06:00 ale bez záporného znamienka "-".
Prosím ako docieliť aby záporné číslo zobrazilo so znamienkom - a kladné zas bez znamienka (napr. -05:30 a kladné 05:30)
Vopred vďaka.
skorektnenie riadku VBA Vyřešeno
skorektnenie riadku VBA
Naposledy upravil(a) tsibee dne 04 čer 2018 15:13, celkem upraveno 1 x.
-
- Pohlaví:
Re: skorektnenie riadku VBA
Obecně - Excel v režimu "1900" neumí záporné časy sám o sobě. Ve výsledku (Label) je to stejně text, tak si zkrátka vkládejte znaménko bokem samotného formátování času.
Re: skorektnenie riadku VBA
Excel mám v režime 1904.
Re: skorektnenie riadku VBA
Nie, čas sa mení. Môže byť záporný aj kladný.
Ak dokáže zobraziť negatívne číslo, tak predpokladám, že aj záporný čas by dokázal nejak zobraziť .
Ak dokáže zobraziť negatívne číslo, tak predpokladám, že aj záporný čas by dokázal nejak zobraziť .
-
- Pohlaví:
Re: skorektnenie riadku VBA
Ono ještě jinak, pokud je již buňka sama o sobě naformátovaná jako čas, pak zkrátka přebírejte jen vlastnost Text z buňky, něco jako Label1.Caption = Range("A1").Text. A nebo tedy:
Kód: Vybrat vše
'Label1.Caption = Range("A1").Text
Select Case Sgn(Range("A1").Value)
Case Is < 0
Label1.Caption = Format(Range("A1").Value, "-hh:mm")
Case Else
Label1.Caption = Format(Range("A1").Value, "hh:mm")
End Select
Re: skorektnenie riadku VBA
Super, toto som chcel :). Vďaka.
Dodatečně přidáno po 20 minutách 10 vteřinách:
Vlastne skoro OK. Ak dám Range("A1").text tak je to OK ale keď dám D(1,10).text tak už mi nezobrazuje nič.
Pri D(1,10) mi zapíše -26, ... napriek tomu, že bunka je naformátovaná ako čas - 06:20.
Dodatečně přidáno po 20 minutách 10 vteřinách:
Vlastne skoro OK. Ak dám Range("A1").text tak je to OK ale keď dám D(1,10).text tak už mi nezobrazuje nič.
Pri D(1,10) mi zapíše -26, ... napriek tomu, že bunka je naformátovaná ako čas - 06:20.
- elninoslov
- Level 2.5
- Příspěvky: 386
- Registrován: červen 13
- Pohlaví:
- Stav:
Offline
Re: skorektnenie riadku VBA
Asi pletiete jablká a hrušky. Range je odkaz na bunku, typu Range, ktorá má vlastnosť Text. Naproti tomu D, je predpokladám pole, nie Range. To nemá Text. Myslím, že to bude súvisieť už s tým, čo som Vám robil, nie ? Treba vždy celý príklad (súbor), nie iba jedno slovo/riadok z kódu.
Re: skorektnenie riadku VBA
V jednom pripade som to vedel vyriesit s range.text a ano v druhom pripade je to pole a tam to nefunguje, teda z toho co ste pisali tak kvoli tomu ze pole nema text. Ano jedna sa o ten subor, môžem to sem dat, len pochybujem, ze to niekto bude chciet studovat 

- elninoslov
- Level 2.5
- Příspěvky: 386
- Registrován: červen 13
- Pohlaví:
- Stav:
Offline
Re: skorektnenie riadku VBA
Myslím, že ste písal, že je to už out. Priložte sem výhradne to čo je aktuálne, teda to nové. Nič staré čo neplatí sem ako vzor nedávajte. To bol ten form s tým obrázkom ? Tak to bol pekný mišung :)
Šupnite sem len to nové ...
Šupnite sem len to nové ...
Re: skorektnenie riadku VBA
No ja už plánujem len drobné úpravy ( teda hlavne vizuálne) .
Ja som si tam porobil ešte všeličo, takže asi sa budete chytať za hlavu ale podstate funguje to podľa mojich predstáv až teda ešte na tú jednu vec, čo som riešil vyššie.
Presnejšie mi ide teda o to, že v Userform2/Page 2(modifikácia)/label "lblaktstav" zobrazoval aj kladný aj záporný časový údaj zo stlpca "K" ("hárok1") riadok podľa vybratého dátumu v CB a aby sa tento údaj každú sekundu aktualizoval (tak ako lbl na page 1 lblaktprichod1,lblaktprichod2 .... ).
Tak teda ďakujem vopred za každú pomoc :).
Ja som si tam porobil ešte všeličo, takže asi sa budete chytať za hlavu ale podstate funguje to podľa mojich predstáv až teda ešte na tú jednu vec, čo som riešil vyššie.
Presnejšie mi ide teda o to, že v Userform2/Page 2(modifikácia)/label "lblaktstav" zobrazoval aj kladný aj záporný časový údaj zo stlpca "K" ("hárok1") riadok podľa vybratého dátumu v CB a aby sa tento údaj každú sekundu aktualizoval (tak ako lbl na page 1 lblaktprichod1,lblaktprichod2 .... ).
Tak teda ďakujem vopred za každú pomoc :).
- Přílohy
-
- Kópia - Dochadzka 05062018 1205.xlsm
- (208.19 KiB) Staženo 14 x
- elninoslov
- Level 2.5
- Příspěvky: 386
- Registrován: červen 13
- Pohlaví:
- Stav:
Offline
Re: skorektnenie riadku VBA
No, radšej nebudem hovoriť nič, a len som tam zmenil ten mínusový čas. Ak to načítate z bunky (a bunka je dosť široká, aby tam ten čas bol správne vypísaný), tak čítajte Range.Text. No ak to chcete z poľa dát, musíte cez funkciu Format() s tým, že pred ňou otestujete a upravíte znamienko. Alebo že by som predsa len pár slov naťukal?
Nemám už asi ten pôvodný súbor, ale myslím, že som Vám tam urobil úpravy, ktoré už v tomto niesú. Napr. Ako chcete meniť mesiac ? Prepisovaním všetkých dátumov ? To sa robí tak, že všetko je odvodené od jednej bunky. Napr. napíšete 1.6.2018 do jednej bunky, a všetko ostatné, víkendy, dni v mesiaci, sviatky daného roku (nie sú v každom rovnaké), ich označenie, prípadne počítanie s nimi, všetko sa má robiť automaticky. Takto to nevidím ružovo. Zbytočné sú aj niektoré celé procedúry (niesú k ničomu priradené napr. "Tlačidlo3_Kliknúť"). Tie testy kde sa 20x opakuje tbDochPrerusenieDo.Value alebo cbModPrerus.Text, tieto reťazce podmienok If by som na Vašom mieste prehodnotil. Problém ďalej je, že niečo ste urobil Vy, potom som Vám to prerobil, z toho sa Vám nie všetko aj šiklo, a prirobil ste do toho iné veci, a vznikol z toho mišung, ktorý nemusí byť vôbec na rovnakej "vlne", a keď príde problém, bude sa Vám veľmi zle riešiť, keď nebudete poznať, ako myslel to či ono niekto druhý, a ten zase nevie, ako myslel iné ten prvý. No držím Vám palce. Snaha je, len Vám treba viac času na aplikáciu v praxi.
Nemám už asi ten pôvodný súbor, ale myslím, že som Vám tam urobil úpravy, ktoré už v tomto niesú. Napr. Ako chcete meniť mesiac ? Prepisovaním všetkých dátumov ? To sa robí tak, že všetko je odvodené od jednej bunky. Napr. napíšete 1.6.2018 do jednej bunky, a všetko ostatné, víkendy, dni v mesiaci, sviatky daného roku (nie sú v každom rovnaké), ich označenie, prípadne počítanie s nimi, všetko sa má robiť automaticky. Takto to nevidím ružovo. Zbytočné sú aj niektoré celé procedúry (niesú k ničomu priradené napr. "Tlačidlo3_Kliknúť"). Tie testy kde sa 20x opakuje tbDochPrerusenieDo.Value alebo cbModPrerus.Text, tieto reťazce podmienok If by som na Vašom mieste prehodnotil. Problém ďalej je, že niečo ste urobil Vy, potom som Vám to prerobil, z toho sa Vám nie všetko aj šiklo, a prirobil ste do toho iné veci, a vznikol z toho mišung, ktorý nemusí byť vôbec na rovnakej "vlne", a keď príde problém, bude sa Vám veľmi zle riešiť, keď nebudete poznať, ako myslel to či ono niekto druhý, a ten zase nevie, ako myslel iné ten prvý. No držím Vám palce. Snaha je, len Vám treba viac času na aplikáciu v praxi.
- Přílohy
-
- Kópia - Dochadzka 05062018 1205.xlsm
- (200.92 KiB) Staženo 24 x
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 4 hosti