Stránka 2 z 2

Re: excel - visual basic

Napsal: 15 pro 2014 09:05
od ITCrowd
Můžu se zeptat jaký má smysl vypnout kontrolu chyb pro řádek, který chybu nehlásí? Viz.:
nospe píše:a ve VB mi žádný error nehlásí.

Podle tohohle: http://wall.cz/index.php?m=topic&id=17651 jde jednoznačně o chybu v datech při kombinaci W8 a Off2013. K tomu se i přikláním, protože i u mě i u diamanta to funguje. Bohužel i když už se podařilo vymámit z tazatele verzi officů, stejně nesdělil OS.
Takže se zeprám napřímo: jde o kombinaci OS W8 a MSOffice2013? Už jen proto, abychom tohle podezření mohli vyloučit?

Re: excel - visual basic

Napsal: 15 pro 2014 10:31
od eLCHa
@ITCrowd
To je otázka na mně?

1. Abychom mohli tvrdit, že se jedná "jednoznačně o chybu v datech při kombinaci W8 a Off2013", na to by bylo potřeba více ověření než jen jedno vlákno na Wall.cz - bohužel tam Cowley nedal vědět jak dopadl - takže to nevíme. Ale netvrdím, že to tak není. Ne že bych nějak extra hledal - našel jste toto téma ještě někde jinde?
2."že proč mi furt píše, že datum není správně."
Místo abyste řešili co by to asi mohlo být, měli jste se zeptat, jaký výsledek tazateli dává výraz

Kód: Vybrat vše

datumText = Range("C4").Value & "." & Range("C6").Value & "." & Range("C8").Value

před tím, než kontroluje, jestli výsledek je datum
3. Je naprosto zbytečné nejdříve vytvářet textovou hodnotu a následně tetsovat, zda je to datum, nemyslíte? Takže já nevypínám kontrolu chyb tam kde chyba není - nabízím alternativu s tím, že využívám vestavěnou VBA funkci DateSerial, které je jedno jestli je tam "." nebo "/", prostě vytvoří datum. A v případě, že i tato funkce dá špatný výsledek a zadání je správné - pak je problém vážnější.

Že autor používá funkci jako proceduru tady řešit nebudu - já jsem se jen zaměřil na problém s datem.

Re: excel - visual basic

Napsal: 15 pro 2014 11:17
od ITCrowd
@eLCHa
pardon, příliš rychle jsem si to přečetl, takže ano, máte pravdu.

Re: excel - visual basic

Napsal: 15 pro 2014 13:06
od d1amond
Samozřejmě by nebylo od věci nechat si před samotnou kontrolou vypsat

Kód: Vybrat vše

MsgBox textDatum

nicméně si stále myslím, že pokud naše Excel chybu nehážou - fce projde, a datum sestaví správně (ne na základě nějaké náhody), tak chyba není v sestavení textového řetězce.

Re: excel - visual basic

Napsal: 15 pro 2014 13:17
od eLCHa
@d1amond

Souhlasím a netvrdím, že mně nezajímá, co to tam nospe vlastně pytlikuje ;))
Ale když máme DateSerial, tak určitě platí to, co jsem napsal -
Je naprosto zbytečné nejdříve vytvářet textovou hodnotu a následně tetsovat, zda je to datum

Re: excel - visual basic

Napsal: 15 pro 2014 17:09
od nospe
Takže dneska jsem to zkusil ve škole a tam to jde normálně. U mě pořádn ne. Ptal jsem se i učitele a něco zkusil, ale stejně mi nevěděl nakonec říct proč mi to nejde když všechno je fajn.

Mám Win7 takže to na wall.cz by neměl být můj probém...

Zkusil jsem taky přepsat ten kód jak napsal eLCHa. V tom případě to jde, ale kontrola neproběhne a propustí mi i datum 31.2.

EDIT: Učitel ještě něco říkal o formátu data, tak jsem se podíval teď na to jak to mám. A já to mám nastavené, že po tečce nasleduje ještě mezera. No a když jsem to upravil ve VBA v řádku
datumText = Range("C4").Value & "." & Range("C6").Value & "." & Range("C8").Value
, že jsem za obě tečky přidal i mezeru, tak už mi to jde normálně. Je to blbý, že taková blbost všechno dokáže posrat.

Tak děkuji všem za snahu a rady :-) .

Re: excel - visual basic  Vyřešeno

Napsal: 15 pro 2014 18:52
od ITCrowd
Hehe, no to je mazec :D. No, aspoň víme kde, ale nevíme proč :lol: Označ téma jako vyřešené (zelené zatržítko).