skorektnenie riadku VBA Vyřešeno

Programy pro práci v kanceláři (Word, Excel, Access…=>Office)

Moderátor: Mods_senior

tsibee
nováček
Příspěvky: 34
Registrován: duben 18
Pohlaví: Muž
Stav:
Offline

skorektnenie riadku VBA

Příspěvekod tsibee » 04 čer 2018 13:58

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.
Naposledy upravil(a) tsibee dne 04 čer 2018 15:13, celkem upraveno 1 x.

Reklama
guest
Pohlaví: Nespecifikováno

Re: skorektnenie riadku VBA

Příspěvekod guest » 04 čer 2018 15:05

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.

tsibee
nováček
Příspěvky: 34
Registrován: duben 18
Pohlaví: Muž
Stav:
Offline

Re: skorektnenie riadku VBA

Příspěvekod tsibee » 04 čer 2018 15:12

Excel mám v režime 1904.

guest
Pohlaví: Nespecifikováno

Re: skorektnenie riadku VBA

Příspěvekod guest » 04 čer 2018 15:20

A čas bude vždy záporný?

tsibee
nováček
Příspěvky: 34
Registrován: duben 18
Pohlaví: Muž
Stav:
Offline

Re: skorektnenie riadku VBA

Příspěvekod tsibee » 04 čer 2018 15:22

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ť .

guest
Pohlaví: Nespecifikováno

Re: skorektnenie riadku VBA

Příspěvekod guest » 04 čer 2018 15:24

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

tsibee
nováček
Příspěvky: 34
Registrován: duben 18
Pohlaví: Muž
Stav:
Offline

Re: skorektnenie riadku VBA

Příspěvekod tsibee » 04 čer 2018 15:28

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.

Uživatelský avatar
elninoslov
Level 2.5
Level 2.5
Příspěvky: 367
Registrován: červen 13
Pohlaví: Muž
Stav:
Offline

Re: skorektnenie riadku VBA

Příspěvekod elninoslov » 04 čer 2018 16:31

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.

tsibee
nováček
Příspěvky: 34
Registrován: duben 18
Pohlaví: Muž
Stav:
Offline

Re: skorektnenie riadku VBA

Příspěvekod tsibee » 04 čer 2018 17:11

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 :-)

Uživatelský avatar
elninoslov
Level 2.5
Level 2.5
Příspěvky: 367
Registrován: červen 13
Pohlaví: Muž
Stav:
Offline

Re: skorektnenie riadku VBA

Příspěvekod elninoslov » 04 čer 2018 18:58

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é ...

tsibee
nováček
Příspěvky: 34
Registrován: duben 18
Pohlaví: Muž
Stav:
Offline

Re: skorektnenie riadku VBA

Příspěvekod tsibee » 05 čer 2018 16:14

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 :).
Přílohy
Kópia - Dochadzka 05062018 1205.xlsm
(208.19 KiB) Staženo 12 x

Uživatelský avatar
elninoslov
Level 2.5
Level 2.5
Příspěvky: 367
Registrován: červen 13
Pohlaví: Muž
Stav:
Offline

Re: skorektnenie riadku VBA

Příspěvekod elninoslov » 08 čer 2018 08:37

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.
Přílohy
Kópia - Dochadzka 05062018 1205.xlsm
(200.92 KiB) Staženo 19 x


Zpět na “Kancelářské balíky”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 3 hosti