Fórum pro uživatele kancelářského balíku OpenOffice | LibreOffice
 

#1 Re: Calc » Sdílení tabulky Calc - VYŘEŠENO » 14. 11. 2019 10:09:08

Je to v menu nástroje > sdílet sešit ... Ale osobně s tím nemám dobré zkušenosti. Je potřebo to otestovat na konkrétním případě. U mě to nezvládalo příliš velký s složitý soubor - prostě to padalo.

#3 Re: Calc » Vynechání určitých řádků při opisu do dalšího listu - VYŘEŠENO » 10. 10. 2019 21:56:32

Myslel jsem že jde o celé řádky a nikoliv o jednotlivá data. Já nabízím řešení pro celé řádky. Jestli jde tazateli o úplnou "kompresi" dat pak je to vaše řešení samozřejmě správné.

#4 Re: Calc » Vynechání určitých řádků při opisu do dalšího listu - VYŘEŠENO » 10. 10. 2019 17:01:11

Nebo takto?

Dim PodminkaSplnena As Boolean
PodminkaSplnena = True

For j = 1 To iVar
    If PodminkaSplnena = True Then
	k = k + 1
    End If    
    PodminkaSplnena = False
    For i = 0 To 9
	If InStr(oSheet2.getCellByPosition(8,j).String, "d") > 0 OR _
   	InStr(oSheet2.getCellByPosition(8,j).String, "o") > 0 OR _
    	InStr(oSheet2.getCellByPosition(8,j).String, "a") > 0 Then
        	PodminkaSplnena = True
		Select Case i
	       		'vkládáme do řádku k
		end Select
	End if
    Next i
Next j

#5 Re: Calc » Vynechání určitých řádků při opisu do dalšího listu - VYŘEŠENO » 8. 10. 2019 15:06:23

Já to většinou dělám vnořeným "cyklem" k=k+1, který se spustí jen při splnění podmínky. U vás běží cyklus "i" a "j" v každém případě, pokud byste uvnitř IF měl k=k+1 a řádek pak vázaný na "k" místo na "j", tak by to řádky vynechávat nemělo.

#6 Re: Calc » VLOOKUP vrátí špatně hvězdičku - VYŘEŠENO » 1. 10. 2019 18:16:13

Musel byste vyhledávaný řetězec zapsat jako regulární výrez, který bude akceptovat * jako obyčejný znak - myslím že se použije zpětné lomítko \*

#7 Re: Calc » VLOOKUP vrátí špatně hvězdičku - VYŘEŠENO » 1. 10. 2019 17:16:09

V nastavení rugulárních výrazů? Je potřeba je vypnout - někde v nastavení.

Možnosti -> Calc -> Výpočty -> X Povolit regulární výrazy ve vzorcích (nechat prázdné)

#8 Re: Calc » vyřešeno » 3. 9. 2019 12:01:10

např. SUM(A1:A31) sčítá celkem bez problémů 31 argumentů. Pokud se mezi buňkami vyskytuje text, je dobré si upravit nastavení tak aby se text počítal jako nula (provádí se v možnostech LO - trochu složitější cesta, pokud bude potřeba navedeme)

#9 Re: Calc » Rozbalovací seznam pomocí makra » 26. 7. 2019 13:21:56

Zkuste malá makra openoffice vždy jako první volbu před dotazem :-) (Já to aspoň tak dělám)
https://www.openoffice.cz/doplnky/nasta … dat-makrem

#10 Re: Calc » Makro, odkaz na vedlejší list » 24. 7. 2019 14:05:13

Ahoj. Kdysi jsem se nad tím dost navztekal. Nevím zda je to tvůj případ, ale já jsem měl nakonec problém v té tečce. Myslím že zafungoval vykřičník thisComponent.Sheets(2).getCellByPosition(i,j).Formula = "=list1!A2" Ale nejsem si úplně jistej, chce to vyzkoušet, možná je k tomu potřeba i nějaké nastavení LO ....
EDIT: ještě podotýkám že jinak mi normálně fungují tečky za listem, ale přes makro .FORMULA fungoval jen vykřičník, proto mi hodně trvalo než jsem na to přišel.
edit2: a ještě: vstupem do .formula je .string nebo .formula. S .value to určitě fungovat nebude.
edit3. Pokud je vtupem typ .formula pak výstupem je absolutně ten stejný vzorec, nic se netransformuje přenosem do jiného listu, tzn. není to totéž jako ctrl+c/v, kde se adresa relativně transformuje. (samozřejmě to platí i pokud je vstupem .string, ale tam je to jaksi očekávané :-)
edit4: tak s tou tečkou to byl tehdy asi "bug" v LO6 to nyní normálně funguje s tečkou "=List1.A1"

#12 Re: Calc » Jak sčítat měny » 25. 6. 2019 08:22:41

Asi bych si nachystal nějaký takovýhle vzorec =VALUE(SUBSTITUTE(SUBSTITUTE(A2;"€";"");".";","))

#13 Re: Calc » zjistit makrem datum vytvoření cizího souboru VYŘEŠENO » 28. 5. 2019 19:58:19

Funkce FileDateTime funguje dobře. Nezdá se že by tam byla nějaká chyba. Vrácí to string, hodnotu zjistím přes CDate a přes datumové a časové oparace dojdu k aktuálnímu stáří což je moje cílová hodnota. Šlape to bez problémů.

dim rozdil as double, cas as double
dim dny as integer

rozdil = now() - Cdate(FileDateTime(Faktura))
dny = int(rozdil)
cas = rozdil - dny

if rozdil > 0.007 Then 'asi 10 minut
  otazka = MsgBox("Příloha je stará: " & dny & " dní, " & hour(cas) & " hodin a "_
               & Minute(cas) & " minut. Chceš generovat nové příohy?",35,"NEAKTUÁLNÍ PŘÍLOHA?")
  if otazka = 6 then
    exportuj_jednu 'úloha pro export aktuálně zobrazené faktury
  elseif otazka = 2 then
    exit sub 'stisk Cancel, při stisku NE se pokračuje se stávajícími přílohami
  end if
end if

#14 Re: Calc » zjistit makrem datum vytvoření cizího souboru VYŘEŠENO » 28. 5. 2019 18:09:30

Děkuji oběma nicméně v jednoduchosti je krása a tohle už snad ani jednoduší být nemůže:

Sub ExampleFileDateTime
    MsgBox FileDateTime("C:\autoexec.bat")
End Sub

https://help.libreoffice.org/Basic/File … Runtime/cs

Díky.

#15 Calc » zjistit makrem datum vytvoření cizího souboru VYŘEŠENO » 23. 5. 2019 19:50:43

ludviktrnka
Odpovědí: 4

Ahoj. Ještě ze soudku práce se soubory. Myslíte že lze nějak (makrem) zjistit datum vytvoření nějakého souboru v počítatči? Jde o to že mám dávku na odeslání nějakého strukturovaného mailu, kam se zároveň přidávají přílohy (již hotové soubory z místa v počítači). Potřeboval bych ale ověřit datum jejich vzniku, neboť musí být aktuální. (Lze to samozřejmě i obejít různými berličkami, ale na to se neptám, potřebuji to datum)

#16 Re: Calc » MATCH kopírování hodnoty z jiného listu » 22. 5. 2019 11:36:31

realphoto napsal(a)

Ale proč musí být rozsah B:H, když hledané hodnoty jsou stejně jen ve sloupci H?

K rozsahu: V prvním sloupci (B) je vyhledávaná hodnota (nejspíše název knihy), ve sloupci H je pak hodnota která je výsledkem tohoto vzorce, takže se zjednodušeně zadává celý rozsah (může být i libovolně větší např. B:Z, výsledek vzorce bude stejný. Změnou čísla ve třetím atributu pak vzorec vrací hodnoty z jiných sloupců, takže vzorec se snadno modifikuje v případě potřeby.

#17 Re: Calc » Jak očíslovat řádky od 1..1000000 - VYŘEŠENO » 20. 5. 2019 16:25:52

fakt jo, v LO to mám jinde: označit buňky, menu: List > Vyplnit buňky > Posloupnost … hezký, ale ne že by mě napadlo rozumné využití :-)

#18 Re: Calc » MATCH kopírování hodnoty z jiného listu » 18. 5. 2019 18:01:58

… jo jenže vy hledáte ve sloupci H. musíte ve vašem vzorci přehodit B a H Ale pokud chcete hledat takto doporučuji tento vzorec =VLOOKUP(B799;$Kosmas.B1:H100;7;0)

#19 Re: Calc » MATCH kopírování hodnoty z jiného listu » 18. 5. 2019 14:32:17

vzorec máte dobře ačkoli posun sloupců H1:100 a B10:100 je poněkud neobvyklý, není v tom chyba? nemá být H1:H100  a B1:B100 ?


Jinak na externí soubor odkážete prostě adresou =INDEX('file:///C:/kosmas.ods'#$kosmas.B1:B100;MATCH(B799;'file:///C:/kosmas.ods'#$kosmas.H1:H100;0);1)


Když otevřete oba soubory současně, můžete s tím pracovat skoro jak s druhým listem.

#21 Re: Calc » zjistit makrem zda je pdf otevřené-VYŘEŠENO » 6. 5. 2019 19:10:03

Když je acrobat zavřen tak se neděje nic, což je v pořádku. Na síti nepracuji, takže síťovou funkčnost vyzkoušet nemohu. Resp. i když otveřu PDF ze síťového umístění, stejně se otevře v lokálním Acrobatu, takže by to mělo fungovat stejně. Ale to mě jinak netrápí.


Do makra pak příkaz vložím mezi počáteční dotazy, které se objevují na začátku, takže uživatel může rozhodnout zda chce nebo nechce proces vypínat.

#22 Re: Calc » zjistit makrem zda je pdf otevřené-VYŘEŠENO » 6. 5. 2019 18:39:54

Tak světová komunita nakonec řešení našla. Dotaz jsem položil trochu jinak a sice, jak ukočit běžící proces a řešení je následovné:

shell("taskkill", 0, "/f /im AcroRd32.exe", True)

... jednoduché jak facka. Takto platí ovšem zřejmě jen pro windows, podrobnosti zde: https://docs.microsoft.com/en-us/window … s/taskkill

Nezjistím tedy zda je soubor otevřen ale v každém případě aplikaci zavřu, čímž zajistím hladký průběh.

#23 Re: Calc » zjistit makrem zda je pdf otevřené-VYŘEŠENO » 5. 5. 2019 13:42:24

Příkaz IsMissing v tomto případě nechápu - resp. nevím jak použít. Zkusil jsem FileExists() ale to dává při otevřeném i zavřeném pdf stejný výsledek


Tož nahradil jsem FileExists příkazem IsMissing ... Funkce IsMissing je určena na zjišťování existence proměnné (asi), takže podmínka IsMissing(ConvertToUrl(sPATH)) = False je vždy pravdivá, protože sPATH je definována bez ohledu na existenci souboru (funkce nemá prostě se samotným souborem žádný vztah)

#24 Re: Calc » zjistit makrem zda je pdf otevřené-VYŘEŠENO » 5. 5. 2019 13:18:14

Nefunguje mi ani když celý pokus o export zavřu do podmínky If(IsError(


If IsError(ThisComponent.storeToURL(ConvertToUrl(sPATH), podminka_exportu())) Then


I v tomto případě program skončí chybou.

#25 Re: Calc » zjistit makrem zda je pdf otevřené-VYŘEŠENO » 5. 5. 2019 13:09:53

To jo, jenže problém je že PDF je otevřeno normálně z nástrojů Windows a např. tato dávka

oSys = CreateUnoService("com.sun.star.system.SystemShellExecute")
oSys.execute(sDestUrl, "", 0)

nevrací u otveřeného PDF chybu, prostě jej jen otevře a pokud už otevřené je, tak už nic nedělá.

Zkusil jsem vysledovat tu chybovou hlášku a nakonec mám řešení jak jsem psal v otázce a sice přes on error goto, trošku specifikované chybou číslo "1", což nevím moc co znamená.

 z = 1
  
  zavrisoubor: 'ošetření chyb z příkazu on error goto
  if z=0 then
  		If Err = 1 Then
        	msgbox ("Zavři soubor:" & CHR(10) & sPATH & CHR(10) & "a stiskni OK",0,"Soubor je otveřený")
  		 	Resume souborzavren
  		else
  			msgbox ("Uf. Něco se stalo."& CHR(10) &_
  			"Error " & Err & ": " & Error$ & " (line : " & Erl & ")",0,"Ukončení")
  			Resume konec
  		end if
  end if

Zápatí

Používáme FluxBB