Díky, to jsem měl na mysli.
Já jsem při plnění pole počítal rok u každého prvku a přitom to stačí vypočítat jen jednou předem a ušetřit čas. Tady asi ne, ale jinde při větším množství.
čas jako double:
8:00 = 1/3
9:00 = 1/3+1/24 = 9/24
9:30 = 9/24+1/48
Už vidím, jak si napíšu místo 9:15
Const JdiNaSvacinu = 9/24+15/1440
Const JdiNaPivo = 1/3+1/24+15/1440
a pak za rok budu na to hledět, co to má být
No, zaujal mě ten problém, který tu Olam donesl, tak jsem si to chtěl vyzkoušet.
Nenapadlo mě, že existuje nějaký WORKDAY, tak jsem na to šel přes makro.
A teď by mě spíš v obecné rovině zajímalo, jestli je takovýto zápis konstanty Const PrcDob1 = "8:00:00" dobrý nebo jestli by to šlo i jinak, lépe (neberu v úvahu možnost načtení z listu).
Stejně tak i tento způsob naplnění pole datumy:
Dim svatky(7) As Long
svatky(0) = DateSerial(Year(Date), 1, 1)
svatky(1) = DateSerial(Year(Date), 3, 30)
svatky(2) = DateSerial(Year(Date), 4, 2)
svatky(3) = DateSerial(Year(Date), 5, 1)
je to takto vhodné nebo je lepší to udělat jinak (opět nechci načítat z listu, chci to mít natvrdo zadané)
a nebo toto naplnění času pomocí timevalue
Select Case Range("B4").Value
Case 1
CasNaReseni = TimeValue("2:00:00")
Case 2
CasNaReseni = TimeValue("11:00:00")
Momentálně to k ničemu konkrétnímu nepotřebuji, jen by mě zajímalo, jestli se v makrech takhle s datumem a časem pracuje.
Doufám, že chápeš o co mi jde. Líp to popsat neumím.
Studoval jsem ten tvůj výtvor a klobouk dolů. I kdybych tu funkci znal, stejně bych skončil na tom, jak určit začátek a konec pracovní doby. Tohle bych zřejmě nevymyslel.
Když už jsem to stvořil, zajímal by mě názor odborníků na pár věcí:
konstanta PrcDob1 = "8:00:00" - šla by nastavit přímo jako číslo, aby se později nemusela převádět pomocí TimeValue.
Lze lépe vyřešit kontrolu svátků (procházení polem)?
Díky
Tak jsem se na to díval a něco jsem stvořil. Není to dokonalé, je potřeba dořešit kontroly, určitě by to šlo i lépe učesat....
Načítá to natvrdo z konkrétních buněk, nevím jak to máš ty.
Čas na vyřešení incidentu běží jen v pracovní době a v pracovní dny?
Nejdelší čas na řešení incidentu je 23:59:59
Nevím, kdy se má čas vypočítat, zatím je to na tlačítko.
Třeba to k něčemu bude
Pár otázek:
Pracovní doba je jen po - pá nebo se jedná o nepřetržitý provoz po - ne?
Je to jen drobnost, ale odpadl by test na kontrolu jestli je pátek a další pracovní den je až v pondělí.
A co svátky, pracuje se nebo ne?
Nebo funkce DATUMHODN. Jestli je v excel 2013
Dík.
Teď se dívám, že kdybych pozorně četl, tak jsem si Cdbl() všiml již ve vašem příspěvku z 20.2 v 9:15.
Vím, že ošetření chyb je důležité, ale moc to nedělám a pak se divím.
Aha, takže špatný datový typ v prvním argumentu.
Díky, i za ukázku ošetření chyby.
Co mám špatně v tomto zápisu:
Sub pokus()
x = WorksheetFunction.Match(Date, Range("A1:AC1"), 0)
End Sub
Hlásí mi to chybu application-defined or object-defined error
Chci v prvním řádku najít dnešní datum.
Špatně definovaný Range?
Moc chytrý z toho zadání nejsem, ale já bych to asi udělal takto:
Private Sub Workbook_Open()
i = 2
While Cells(1, i) <> Date
i = i + 1
Wend
If Cells(2, i) = 1 Then MsgBox ("Moje první okno")
End Sub
Samozřejmě by to chtělo asi doladit.
Takže při otevření sešitu najdu v řádku 1 dnešní datum. Pak zkontroluji, jestli ve stejném sloupci je v řádku 2 číslo 1. Pokud ano, tak otevřu msgbox?
Co takhle?
Aby byla splněna podmínka, musíš do B1 napsat aktuální datum.
A to okno ti má vyskočit kdy? Při otevření sešitu, při zapsání datumu....?
Chybí ta přiložená tabulka
Předpokládám, že to jde i elegantněji, ale jestli to stačí takto, tak jsem rád pomohl.
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.