@lubo
Díky za postřeh. Tímto se omlouvám Transpose za to, že jsem tvrdil, že je pomalá ;))
Při použití Value2 je to mírně rychlejší než při použití pole. To je asi stále bezpečnější (vše máme pod kontrolou).
Děkuji
Jste nějak schopen upřesnit tu poznámku?
podle dat a potřeb, některé vlastnosti se nepřenášejí
Přiznám se dobrovolně. O Value2 vím, několikrát už jsem hledal k čemu je a vždycky to úspěšně zapomněl. A nikdy jsem ji nepoužil. Takže ani nevím, jestli je to škoda nebo ne ;)) .
A jen tak mimochodema = Evaluate("=TRANSPOSE(" & Selection.Address & ")")nevrátí text, ale ani datum. Alespoň vrátí číslo (Double)
@xlnc
Krom jiného začínám už upouštět od překlápění přes Transpose, ta holka mizerná prostě degraduje datumy.
Nejen to. Ona je i hrozně omezená - max 65536 prvků (což je mimochodem i tak vlastně zbytečné, když sloupců je 16384). Ale hlavně poooomaaaaláááá.
Dej si do oblasti A1:A65536 nějaká data - když už se bavíme o datumech, tak jsem tam měl datum - celou ji označ a spusť si tyto 2 procedury:Sub test()
Dim t As Double
t = Evaluate("=NOW()")
Dim i As Byte
Dim a
For i = 0 To 254
a = Application.Transpose(Application.Transpose(Selection.Value))
Next i
Debug.Print WorksheetFunction.Text(Evaluate("=NOW()") - t, "m:ss.000")
End Sub
Sub test2()
Dim t As Double
t = Evaluate("=NOW()")
Dim i As Byte, j As Long
Dim a, b()
For i = 0 To 254
a = Selection.Value
ReDim b(LBound(a, 1) To UBound(a, 1))
For j = LBound(b) To UBound(b)
b(j) = a(j, UBound(a, 2))
Next j
Next i
Debug.Print WorksheetFunction.Text(Evaluate("=NOW()") - t, "m:ss.000")
End Sub
Musím Transpose provést 2x a výsledek
test => 0:50.200
test2 => 0:03.760
Na druhou stranu - jak často načítáš 65k dat 255x za sebou, že ano. V každém případě bychom měli používat ten druhý postup, protože tam máme vše pod kontrolou a vše si můžeme určit. Nicméně to nedělám, protože Transpose je tak nějak pohodlnější a jestli něco trvá 0,1s nebo 0,2 s mi nevadí. Důležité je o tom vědět.
Pokud jde o to rozhození - tam je excel sfiňa a nikdy na něj nebyl spoleh. Asi to máš něco jiného, ale win 10 mi automaticky po instalaci nastavily zobrazení na 125% a to dělá v excelu s prvky neplechu.
Osobně nevím, co je zrovna u téhle funkce v nápovědě nejasného...
Když už to máte ve Wordu, tak jste schopen to přenést dále do excelu a tam ty časy "odstranit" např. formátováním.
Nicméně říkáte, že to má 116 stran a tam prostě nezkontrolujete, zda je to v pořádku. Nezjistíte, co špatně přenesl word, co si sám špatně interpretoval a tak pozměnil excel atd. Já bych tomu vůbec nevěřil.
Jediná správná cesta je exportovat ta data přímo do souboru (nejlépe excelu). Takže bych se obrátil na osobu, od které jsem to dostal, zda je to možné...
ak tam bude nejaky posun a index tak idem do makra
bude
tady je potřeba definovat, co přesně chcet dělat.
pokud chcete kód importovat, spustit a uložit se souborem, můžete zkusit to z předchozího příspěvku. nečetl jsem to, ale věřím že to funguje. existuje více způsobů, ale asi se budete potýkat se zabezpečením excelu.
druhá možnost je jednodušší a to vytvořit prázdný sešit, který bude obsahovat kód. ten vždy otevřít spolu se souborem, do kterého chcete kód přidat a udělat to opačně. tzn natáhnout listy z vašeho souboru do tohoto souboru s kódem. ten pak uložit jako (aby se zachoval ten čistý) a proces opakovat pro všechny soubory. tady vás excel ničím omezovat nebude.
a pokud nechcete soubory s kódem ukládat, pouze pro ně kód spustit a uložit je bez kódu, můžete to udělat z jednoho souboru.
Můžete zkusit kouknout sem, zda vás to navede.
http://elcha-en.blogspot.com/2015/05/horizontal-page-breaks.html
Activesheet.ListObjects(1).unlist
V buňce A13 je datum rovno prvnímu dni v měsíci (1.1,1.2...)=A13+7-DENTÝDNE(A13;12)pokud Váš excel nepodporuje argument 12 tak=A13+7-DENTÝDNE(A13-1;2)
Platí pro pondělí.
Úterý je +1, středa +2 atd.
Pokud v A13 chcete mít jakékoliv datum, nahraďte obě A13 ve vzorci výrazemDATUM(ROK(A13);MĚSÍC(A13);1)
Nerozumím tomu, že když už to vytvoříte v excelu, taxem pak dáte obrázek a ne ten excel.
Někteří tady si to přepíšou, já ale ne.
hech - napadl mně jednodušší vzorec=HODNOTA.NA.TEXT(L3;"00"":""00"":""00")/1a pro ověření dat=NE(JE.CHYBHODN(HODNOTA.NA.TEXT(L3;"00"":""00"":""00")/1))
Nějak nerozumím tomu, že na nojbuku s numerickou klávesnicí nemůžete zadávat dvojtečku.
ALův způsob se mi líbí, asi je to řešení. Já mám ale zaměňování textu během psaní vypnuté, jsem na ně alergický.
Takže další 2 možnosti
1) Zadat číslo do buňky, tak jak jste uvedl tedy 20945 a naformátovat je formátem 00":"00":"00. Bude vypadat jako čas, ale nebude - bude tam stále vámi vložené číslo. Pro další výpočty s tímto údajem pak použít vzorec=ČAS(ZLEVA(HODNOTA.NA.TEXT(L3;"000000");2)/1;ČÁST(HODNOTA.NA.TEXT(L3;"000000");3;2)/1;ZPRAVA(HODNOTA.NA.TEXT(L3;"000000");2)/1)nebo si tento převod dejte bokem a ve výpočtech se odkazujte na něj
2)Na panel rychlý přístup si vytáhněte dvojtečku a vždy klikněte myší.
edit: pro hnidopichy
pokud chcete zabránit, aby šlo do buňky zadat číslo, které by "nebylo čas" - 455982, lze využít ověření dat se vzorcem=A(ZLEVA(HODNOTA.NA.TEXT(L3;"000000");2)/1<24;ČÁST(HODNOTA.NA.TEXT(L3;"000000");3;2)/1<60;ZPRAVA(HODNOTA.NA.TEXT(L3;"000000");2)/1<60)
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.