VBA: kontrola termínu od-do (kolize)

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

Moderátor: Mods_senior

d1amond
člen HW spec týmu
Elite Level 12
Elite Level 12
Příspěvky: 16119
Registrován: květen 08
Bydliště: České Budějovice
Pohlaví: Muž
Stav:
Offline

VBA: kontrola termínu od-do (kolize)

Příspěvekod d1amond » 18 zář 2013 14:18

Zdravím.

Dlouho jsem neměl dotaz:)
Řeším takovou věc. Mám zadané 2 termíny, např. 1.1.2013-1.2.2013, čas 14:30-15:30 a 1.1.2013-1.2.2013, čas 15:00-16:00. Potřebuji fcí ve VBA zjistit, zda je druhý čas kolizní nebo ne. Jakmile by bylo odlišné datum, kontrola není třeba.
Nevím jak jednoduše ošetřit všechny varianty - kolize počátku, konce, mezi.
Nikdy neříkej, že to nejde, protože se najde někdo, kdo o tom neví a udělá to!
Chcete si nechat sestavit nový počítač?

Reklama
Uživatelský avatar
Poki
Level 2
Level 2
Příspěvky: 237
Registrován: prosinec 09
Pohlaví: Muž
Stav:
Offline

Re: VBA: kontrola termínu od-do (kolize)

Příspěvekod Poki » 18 zář 2013 14:44

No urcite to nejak pujde, ale bude potreba to poradne vydefinovat. Nejlepsi by bylo poslat soubor s prikladem!!!!
Napr: Jak jsem zadane tyto hodnoty v bunkach (nebo je to hodnota ulozena v promenne VBA? - jak je ulozena)

1.1.2013-1.2.2013, čas 14:30-15:30 a 1.1.2013-1.2.2013, čas 15:00-16:00
Toto znamena, ze prvni termin je 1. a 2. od 14:30 do 15:30 (tedy dva dny po hodine?)
nebo je to myslene nejak jinak?

d1amond
člen HW spec týmu
Elite Level 12
Elite Level 12
Příspěvky: 16119
Registrován: květen 08
Bydliště: České Budějovice
Pohlaví: Muž
Stav:
Offline

Re: VBA: kontrola termínu od-do (kolize)

Příspěvekod d1amond » 18 zář 2013 15:02

Vidíš, to jsem neupřesnil.
Je to rozmezí datumů od do. Jako den by mohl být pondělí - to už je jedno. Potřebuji, abych získal výstup s informací (0/1, true/fals?) v případě, že se jeden termín kříží s druhým. Poslední úrovní v kontrole je právě čas.
Napadlo mě, zda by nestačilo kontrolovat druhý počáteční a koncový čas fcí je mezi prvním časem od - do.
Naposledy upravil(a) d1amond dne 18 zář 2013 15:05, celkem upraveno 1 x.
Nikdy neříkej, že to nejde, protože se najde někdo, kdo o tom neví a udělá to!
Chcete si nechat sestavit nový počítač?

Uživatelský avatar
Poki
Level 2
Level 2
Příspěvky: 237
Registrován: prosinec 09
Pohlaví: Muž
Stav:
Offline

Re: VBA: kontrola termínu od-do (kolize)

Příspěvekod Poki » 18 zář 2013 15:05

a co takhle prilozit ten soubor, protoze ukazka je za tisic slov.
Na muj dotaz ohledne toho, kde a jakym zpusobem jsou data a casy ulozeny, jsem odpoved nedostal.

Nejlepsi by bylo mit soubor, kde by byl vzorovy pripad a preference, jak by melo vypada reseni...

d1amond
člen HW spec týmu
Elite Level 12
Elite Level 12
Příspěvky: 16119
Registrován: květen 08
Bydliště: České Budějovice
Pohlaví: Muž
Stav:
Offline

Re: VBA: kontrola termínu od-do (kolize)

Příspěvekod d1amond » 18 zář 2013 15:08

https://www.dropbox.com/s/y19gdhxrp13zi ... cvicny.xls

V Module 3 je procedura pokus() která volá fci na stejném místě. Používám to k testování.
Nikdy neříkej, že to nejde, protože se najde někdo, kdo o tom neví a udělá to!
Chcete si nechat sestavit nový počítač?

Uživatelský avatar
Poki
Level 2
Level 2
Příspěvky: 237
Registrován: prosinec 09
Pohlaví: Muž
Stav:
Offline

Re: VBA: kontrola termínu od-do (kolize)

Příspěvekod Poki » 18 zář 2013 15:25

asi jsem natvrdlej, ale ja to fakt nechapu - co kdybys pouzil dva priklady a na nich ukazal, kde je teda ta kolize a jak by mel vypadat vystup funkce...fakt nevim... ani s tim souborem, ktery jsi vubec nepopsal!

guest
Pohlaví: Nespecifikováno

Re: VBA: kontrola termínu od-do (kolize)

Příspěvekod guest » 18 zář 2013 16:21

Klíčová slova pro Google: "interval overlap/intersect"

Mělo by to být následovně:

Intervaly mají průnik (meze včetně), pokud

(Start1 <= Konec2) AND (Start2 <= Konec1)

d1amond
člen HW spec týmu
Elite Level 12
Elite Level 12
Příspěvky: 16119
Registrován: květen 08
Bydliště: České Budějovice
Pohlaví: Muž
Stav:
Offline

Re: VBA: kontrola termínu od-do (kolize)

Příspěvekod d1amond » 18 zář 2013 16:46

Tak nějak to mám, jen mi to přišlo moc jednoduché:)
Díky za tip. Zkusím ještě pohledat.
Nikdy neříkej, že to nejde, protože se najde někdo, kdo o tom neví a udělá to!
Chcete si nechat sestavit nový počítač?

guest
Pohlaví: Nespecifikováno

Re: VBA: kontrola termínu od-do (kolize)

Příspěvekod guest » 18 zář 2013 20:16

U dvou intervalů je to takhle jednoduché.. ale u třech a víc by to bylo už asi o kombinatorice..


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek

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

Kdo je online

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