No a v čom bol ten povestný "pudel" zakopaný ?
Myslíte spojiť takto ???=RTD("fxbluelabs.excelrtd";;$B$2;CONCATENATE("t";$A4;"ot"))/86400+25569
Veď iba za Váš vzorec doplňte
/86400+25569
Prípadne vynechajte defacto zbytočnú funkciu CONCATENATE
=RTD("fxbluelabs.excelrtd";;$B$2;"t"&$A4&"ot")/86400+25569
V skratke:
Excelácke počítanie dátumočasu je desatinné číslo od 1.1.1900, a to tak, že počet dní je celá časť čísla, a desatinná je pomerová časť dňa, teda čas - dopočítateľný, keďže vieme koľko hodín, minút, sekúnd má deň.
Unixový dátumočas je celé číslo, vyjadrujúce počet sekúnd. Takže na ubehnuté dni a ich časti to prepočítame delením číslom 86400 (počet sekúnd za deň 60 * 60 * 24). Lenže Unix počíta až od 1.1.1970, preto k tomu pripočítame rozdiel v dňoch od počítania Excelu a to +25569 alebo +DATE(1970;1;1)
+DATUM(1970;1;1)
Na tú bunku nastavte Vlastný formát, tak ako Vám písal hneď v prvom príspevku Stalker.
V SK/EN Office je to
yyyy.mm.dd h:mm:ss
V CZ Office je to
rrrr.mm.dd h:mm:ss
prípadne dajte hh namiesto h, podľa toho či má byť čas 8:30:25 alebo 08:30:25.
To je Unixový dátumový systém. Musíte ho previesť do Excelovského.
=A1/86400+25569
to A1 je Vaša hodnota, alebo pôvodný vzorec. Bunku správne naformátovať.
Vy vo Workbooks.Open(Fname) otvárate HTML dokument ? Ukážte aká je to stránka, alebo rovno ten HTML dokument. Na to treba asi skúsiť Import dát, Data z webu, PowerQuery, alebo rozklad kolekcie elementov v makre, prípadne parsovať kód html...
Makro je nahrané záznamníkom, teda je tam polka zbytočná, každopádne, ak je formát buniek Text, tak to kopíruje správne.
Načo presúvať stĺpec za iný, a potom oba doľava, keď stačí posunúť len krajný do ľava?
Raz formátujete oblasť po riadok 319, potom len po riadok 238. Určite správne ?
Kopírujete stále asi tú istú oblasť, potom netreba toľko riadkov.
Načo stále formátovať skopírované bunky, keď môžete skopírovať iba hodnoty, do vopred naformátovanej oblasti.
Ak by ste poznal názov listu, dali by sa vložiť jednoúčelovo iba vzorce s odkazom na hodnotu a previesť ich na hodnotu, bolo by to bez pomalého otvárania súboru.
...
Navrhujem "malú" zmenu makra.
Malo by fungovať aj to, ak si zmeníte to
-2
na
-ROW(A2)
-ŘÁDEK(A2)
bude to tak pochopiteľnejšie, a pri úprave Vás to skôr "pichne do oka" :)
To je ako s tým povestným hádzaním hrachu na stenu. Veď som Vám poslal prílohu s ukážkou pomocnej tabuľky. To isté Vâm radí aj lubo. A Vy stále riešite, ako sa ten vzorec dozvie čím má nasobiť... No predsa tak ako vravíme, a ako sme ukázali na prílohe. Máte tam predsa nejaký vzorec. Máte? Máte! Tak ho zmeňte tak ako som ukázal v prílohe. Je fuk na ktorom je riadku, veď je relatívny. Vždy počíta ten riadok na ktorom je.
Alebo pošlite prílohu.
Tak si na to urobte prevodnú tabuľku ako táto.
Alebo určite intervaly že ak ABS(G1-H1) bude
<0,0001 - *10000
<0,01 - *100
<0 - *10
alebo podobne.
No už chápem čo myslíte, ale nechápem podmienky, ktorými sa to má riadiť. Koľko čísel pred desatinnou čiarkou je hranica pre násobok 10000, koľko pre 100 a koľko pre 10 ? Ak poznáte intervaly, tak namiesto *10000 tak dajte *(ak podmienka, tak 10000, inak ak podmienka, tak 100, inak 10)) a vynásobí Vám to tak ako chcete.
A potrebujete čo? Nahradiť zostávajúce 10000 tou 100 a takisto asi omylom zadané 10 tiež tou 100?
Ctrl+H (Nahradiť)
Kde hľadať : Vzorce
Hľadať : ~*10000)
Nahradiť čím : *100)
obdobne s 10
Hľadať : ~*10)
Nahradiť čím : *100)
Za prvé.
Ten môj vzorec počíta správne, akurát ste ho zle aplikoval. Vzorec som posielal podľa Vášho popisu na počítanie od 2. riadku. preto je tam B2 ... B2 ... -2 ... B2
Žiadate o B2, dostanete B2, zmeníte to na A5, ale nezmeníte to -2 na -5.
Za druhé.
Ten filter máte nastavený iba po riadok 25, ostatné sa NEFILTRUJE!
Takéto rozšírenie, keď sa mažú vždy bunky o 2 a o 4 vpravo od kontrolovaného stĺpca, nieje problém. Tam kde sú vzorce, a majú tam ostať, nehovoríme, že sa zmaže ich výsledok, ale že sa skryje (!) - vzorcom. Použite na všetky dotknuté vzorcové stĺpce, ktoré majú skrývať hodnotu, podmienku IF/KDYŽ, ako bola prezentovaná ukážka v predošlej prílohe.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zmena As Range, Bunka As Range, RNG As Range
Set Zmena = Intersect(Target, Union(Columns(3), Columns(9), Columns(16), Columns(22)))
If Not Zmena Is Nothing Then
For Each Bunka In Zmena.Cells
If IsEmpty(Bunka) Then
If RNG Is Nothing Then Set RNG = Union(Bunka.Offset(0, 2), Bunka.Offset(0, 4)) Else Set RNG = Union(RNG, Bunka.Offset(0, 2), Bunka.Offset(0, 4))
End If
Next Bunka
If Not RNG Is Nothing Then
Application.EnableEvents = False
RNG.ClearContents
Application.EnableEvents = True
End If
End If
End Sub
Dá sa spraviť aj úplne variabilné makro, kde si v ňom zadáte do poľa parametrov kontrolované stĺpce a k nim mazané stĺpce (ľubovoľné množstvo a umiestnenie voči kontrolovanej bunke). ľahko doplniteľné a editovateľné. Ak to treba tak, písnite, možno večer to spráskam.
Zmenil som Vám vzorce, a pridal to makro. Normálne funguje.
Takže do A vkladáte hodnoty ručne, to je jasné.
B,D,F - vzorce.
1. Do C vkladáte hodnoty ručne ? Ak nie, aký je tam vzorec ?
2. Do E vkladáte hodnoty ručne ? Ak nie, aký je tam vzorec ?
3. Pri vymazaní A, nemá byť nič vidieť v C,E ?
4. Pri vymazaní A, nemá byť nič vidieť v B,D,F ?
Samozrejme to ide aj makrom a to udalosťou "Worksheet_Change" daného listu. Zvládne to aj hromadnú zmenu.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zmena As Range, Bunka As Range, RNG As Range
Set Zmena = Intersect(Target, Columns(1))
If Not Zmena Is Nothing Then
For Each Bunka In Zmena.Cells
If IsEmpty(Bunka) Then
If RNG Is Nothing Then Set RNG = Union(Bunka.Offset(0, 2), Bunka.Offset(0, 4)) Else Set RNG = Union(RNG, Bunka.Offset(0, 2), Bunka.Offset(0, 4))
End If
Next Bunka
If Not RNG Is Nothing Then RNG.ClearContents
End If
End Sub
Predpokladám ale rovnako ako Jirka78, že to tam ťaháte vzorcom.
Inak ako to môžete mazať medzerníkom, veď Vám to hneď hodí chybu v B, D, F. Takže musíte vidieť, že je niečo zle na takom spôsobe.
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.