Public Function Validace
Dim a(1) as string : Dim sVar as string
SH = Thiscomponent.currentcontroller.activesheet
SC = ThisComponent.CurrentController.getSelection().RangeAddress.StartColumn
SR = ThisComponent.CurrentController.getSelection().RangeAddress.StartRow
EC = SC 'Funkčně požadujeme pouze data z jednoho sloupce - ve druhém sloupci budou výsledky.
ER = ThisComponent.CurrentController.getSelection().RangeAddress.EndRow
For i = SR To ER
oCell = SH.GetCellbyPosition(SC, i)
ocell2= SH.GetCellbyPosition(SC+1, i)
sVar = oCell.String : sVar = Right(svar, Len(sVar)-1) : a = Split(svar,".")
oCell2.Value = Val(a(0) &","& a(1))/100
Next i
End Function
Postup je takový, že tuto funkci zkopírujete do "Moje Makra Standard" nad všemi aplikacemi - ale fungovat to bude jen v Calcu. Právě proto že je to v nadřazených makrech tak je tam deklarace "Public" a funkci voláte v každém sešitě. (Samozřejmě že když to dáte do určitého sešitu, bude to fungovat také - ale jenom v tom určitém a nikde jinde.)
Nejdříve vyberte úsek (pouze 1 sloupec) s těmi textovými tvary + euro. Vyberte celý sloupec. Vedle něho vpravo musí být volné místo - tam se vloží převedená čísla. Pokud to neuděláte původní data budou přepsána.
Potom už stačí zavolat z nadřazené knihovny funkci "Validace" a je hotovo. Doporučil bych nastavit klávesovou zkratku. Dejte info jestli to stačí. Udělal jsem to celkem primitivním způsobem ale pro několik desítek převodů to stačí.
Je otázkou zda potřebujete také datumy a časy, nebo jen peníze. Potřeboval bych jenom vědět, jaké 2 sousední sloupce je možné použít a v jaké buňce se objeví text s částkou. Psaná funkce se zadává jako vzorec do první možné buňky vedle té která obsahuje data.
]]>Jak psal LudvikTrnka, tak bych mohl mít předchystaný sloupec, který by mi vytahoval hodnotu bez eura a teček a tu už si spočtu snadno.
neutr - zkoušel jsem změnit nastavení přes měna na čísla, ale asi tím, že tam pořád byly tečky místo desetinné čárky, tak to nefungovalo. Nebo to makro.
]]>To co by fungovalo bych nahrál (nebo programoval) jako makro pokud by to bylo potřebné. Právě proto je výhodnější systémově importovat jako odkaz při otevření souboru a potom lze automaticky spustit makro - protože to jde stále do stejného úseku. Tam se možná udrží nastavený formát, nebo se na ten úsek nastaví makro. Makro může být spouštěno cíleně třeba tlačítkem, ale spíš by asi vyhovovalo automaticky na základě události sešitu, nebo listu.
Extrakce tabulky může být provedena samostatně jako "div", nebo načíst celou stránku a natáhnout vzorce na správné buňky. Takto stažená celá stránka je ošklivá, ale vzorce mohou být v jiném listu a ošklivý import nemusí nikdo vidět.
Také se zbavíte nepříjemných textových převodů. Záleží ale zda to vkládáte jako neformátovaný (ale kódovaný) text, html a podobně.