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

#1 Re: Calc » Součet hodnot v určitých sloupcích z určitých řádků - VYŘEŠENO » 1. 5. 2024 20:43:02

Zdravím, na uvedené adrese ČHMÚ jsou i denní data. Přestože jich je více, byly by výhodnější a jednodušší pro zpracování protože jsou v jediném sloupci.

#2 Re: Calc » Přidání HTML znaků do buněk - VYŘEŠENO » 28. 7. 2023 14:46:49

Doplněný kód:

Function Knv(Data) As Variant
	Dim Text, X, S, D, U, K, T1, T2
	D = Chr(10) ' Upravit podle použitého odřádkování ... buď Chr(10), nebo Chr(13), nebo oba - záleží na pořadí
 	Text = split(Data, D)
 	S = "<p>"
 	U = Ubound(Text) 		
	T2 = Trim(Text(0))	' Tento řádek jsem přidal ... (oprava na jednořádkový vstup)
	For K=0 To U-1
		T1 = Trim(Text(K))
		T2 = Trim(Text(K+1))
		If Len(T1)>0 Then		
			If Len(T2)=0 Then 
				S = S & T1 & "</p>" & D & "<p>"
			Else 
				S = S & T1 & "<br />"
			EndIf		
		EndIf		
	Next
	S = S & T2 & "</p>"	
	Knv = S
End Function

#3 Re: Calc » Přidání HTML znaků do buněk - VYŘEŠENO » 24. 7. 2023 18:32:04

Posílám pro vyzkoušení testovací soubor na kterém jsem to dělal, pokud je nekompatibilita vlivem použitého OS, tak neporadím. Jediný co vím, je že konec řádku může být ukončen různými znaky (v různých OS), ale to jsem uvedl již minule.

#4 Re: Calc » Propojení buněk mezi soubory Vyřešeno » 21. 7. 2023 22:13:31

Pokud jste do Důvěryhodných umístění napsal:
C:\User\jiras\Documents\A.ods.List1.A1
Tak to červený smažte (nemá tam co dělat) a nechte tam pouze to modrý (to je cesta ke zdrojovému souboru).


Mimochodem v tom adresáři může být více důvěryhodných souborů...

#5 Re: Calc » Přidání HTML znaků do buněk - VYŘEŠENO » 21. 7. 2023 15:47:41

Všiml jsem si že používáš i odřádkování, tak jsem to tam dodělal.

Function Knv(Data) As Variant
	Dim Text, X, S, D, U, K, T1, T2
	D = Chr(10) ' Upravit podle použitého odřádkování ... buď Chr(10), nebo Chr(13), nebo oba - záleží na pořadí
 	Text = split(Data, D)
 	S = "<p>"
 	U = Ubound(Text)
	For K=0 To U-1
		T1 = Trim(Text(K))
		T2 = Trim(Text(K+1))
		If Len(T1)>0 Then		
			If Len(T2)=0 Then 
				S = S &  T1 & "</p>" & D & "<p>"
			Else 
				S = S &  T1 & "<br />"
			EndIf		
		EndIf		
	Next
	S = S &  T2 & "</p>"	
	Knv = S
End Function

#6 Re: Calc » Přidání HTML znaků do buněk - VYŘEŠENO » 21. 7. 2023 15:01:40

V Linuxu chodí toto:

Function Konverze(Data) As Variant
	Dim Text, X, S, D
	D = Chr(13) & Chr(10)
 	Text = split(Data, D)
	For Each X In Text 
		S = S & "<p>" & X & "</p>" & D
	Next
	Konverze = S
End Function

Nevím jestli pořadí

Chr(13) & Chr(10)

je ve Windows stejné, nebo obrácené, případně zda se používá pouze jeden znak z těch dvou.


Pravděpodobně by to šlo bez makra jednodušeji pomocí příkazu regex, ale to jsem nezkoušel.

#7 Re: Calc » Propojení buněk mezi soubory Vyřešeno » 20. 7. 2023 23:32:46

Mě už toho moc nenapadá.


Já už z nouze si pojmenoval adresáře i soubory stejně jako vy (tj.s mezerami, háčky a čárkami) a zkusil jsem to. Bohužel jsem k ničemu nedošel - mě to funguje.


Pro začátek bych navrhoval zkusit jednoduší názvy (souborů i adresářů) bez háčků, čárek a mezer a co nejkratší -> eliminace případné chyby z nepozornosti a navíc se to celé zpřehlední a zkrátí.


Chyba 509 může znamenat chybějící nebo přebývající znak v buňce (logická chyba), případně odkaz na neexistující soubor (díval jsem se chybí Vám tam apostrof, ale to může být chyba kopírování). Ona i mezera navíc udělá své... a není snadno vidět.


V důvěryhodných umístěních máte určitě tyto dva řádky (možná více, pokud používáte více umístění):

C:\Users\Josef\Documents
C:/Users/jiras/Documents

Lomítka budou možná jinak..., myslím, že Windows používá obrácená lomítka. Na konci za Documents lomítko už není.


Pokud použijete způsob co uváděl kamowski, pak se po změně dat ve zdrojovém dokumentu projeví změna automaticky i v cílovém dokumentu. U mě to trvá v průměru několik sekund (ale mám počítač z roku 2008, dnes již historický CPU Intel E8400). Někdy tomu musím trošku pomoct. :-)


Pokud použijete ten můj způsob pak se změna ukáže až při jakémkoliv přepočtu v cílovém souboru. Nebo se tomu dá ručně "pomoct" stiskem kláves Control+Shift+F9. Takže se to "samo" hned neprojeví.


V obou případech musí být oba soubory otevřeny (jak cílový, tak zdrojový).

#8 Re: Calc » Propojení buněk mezi soubory Vyřešeno » 20. 7. 2023 18:23:21

Nepíšeš název, jenom vybereš (označíš) existující adresář ve které je umístěn zdrojový soubor (a dáš OK, pokud to uděláš správně, měl by se objevit v tabulce).
Díval jsem se do příspěvku #1 kde píšeš odkaz:

{=DDE("soffice";"C:\Users\Josef\Documents\A-Propojení buněk-odtud kopírováno.ods";"List1.A1")}

V tomto případě by tam mělo být:

C:\Users\Josef\Documents

Můžeš tam mít i více důvěryhodných umístění..., díval jsem se i v příspěvku #10 máš další adresář:

C:/Users/jiras/Documents

Zkoušel jsem to pro ověření, ale mě nejde ručně napsat cestu (nemám tam takovou možnost), pouze vybrat z existujících.

Koukal jsem na lomítka, že jednou jsou tak a podruhé obráceně, máš Windows, nevím jak je to tam správně. V každém případě by se ti to tam mělo vložit správně.

#9 Re: Calc » Propojení buněk mezi soubory Vyřešeno » 18. 7. 2023 22:02:15

Znovu opakuji (příspěvek #2 a #11):
Zvol: Nástroje - Možnosti - LibreOffice (žádný Calc) - Zabezpečení - Zabezpečení maker - Důvěryhodné zdroje - Důvěryhodná umístění - Přidat (vlož sem cestu k tvým souborům)
Obrázek (klikni pro zvětšení):
Sn-mek-obrazovky-z-2023-07-18-22-54-46.png


Mě se video přehraje, zkus jiný přehrávač (VLC, SMPlayer, ...), nebo ti chybí nějaký kodeky (H264)

#10 Re: Calc » Propojení buněk mezi soubory Vyřešeno » 17. 7. 2023 17:18:47

Taky děkuji za info - takže je vše jak má být :-)

#11 Re: Calc » Propojení buněk mezi soubory Vyřešeno » 17. 7. 2023 16:35:57

Zdravím, podíval jsem se na to video od Kamowski, je to hezky udělaný. Všiml jsem si, že jsem opomněl říct, že v nastavení:
Možnosti - LibreOffice Calc - Obecné - Aktualizovat odkazy při otevírání - mám "Vždy (z důvěryhodných umístění)".
Kamowski to tam správně ukázal.
Ale co mě zarazilo, že nemá vyplněno v "Důvěryhodných zdrojích" "Důvěryhodná umístění". Zkusil jsem tu tabulku smazat, ale přestalo mi to fungovat. Několikrát jsem to zkusil (i se změnou "úrovně zabezpečení" ale bez úspěchu. Nevím jestli na to má vliv jiný operační systém (mám Ubuntu), ale u mě to musí být vyplněné.

#12 Re: Calc » Propojení buněk mezi soubory Vyřešeno » 16. 7. 2023 15:53:36

Zdravím,
Chyba 540 (psal jsem to hned v druhém příspěvku) oznamuje, že soubor není přidán do důvěryhodných umístění.
Zvol: Nástroje - Možnosti - LibreOffice - Zabezpečení - Zabezpečení maker - Důvěryhodné zdroje - Důvěryhodná umístění - Přidat. A zde vlož adresář kde jsou uloženy tvoje soubory. A potvrď. Soubory zavři a otevři. Od teď by to mělo fungovat. Možná se ještě objeví žlutá lišta pro ještě jedno potvrzení a pak už by to definitivně mělo vše fungovat.
Možná zkus ještě změnit úroveň zabezpečení - střední.

#13 Re: Calc » Propojení buněk mezi soubory Vyřešeno » 15. 7. 2023 14:19:42

Zdravím,
Vyzkoušeno na LibreOffice 7.4.6.2 (Operační systém Ubuntu 22.04.1 LTS), v mém případě to jde takto:


První způsob:
Otevřu oba dokumenty vedle sebe.
V cílovém dokumentu do příslušné buňky napíšu "=". Ve zdrojovém dokumentu ťuknu do buňky odkud chci data číst a stisknu enter. Automaticky se vytvoří propojení které funguje.


Druhý způsob:
Otevřu oba dokumenty vedle sebe.
Ve zdrojovém dokumentu zvolím zdrojovou buňku. Dám kopírovat. V cílovém dokumentu označím buňku kterou chci mít propojenou. Dám vložit jinak, zvolím odkaz a potvrdím.


Oba způsoby mi bez problému fungují a jsou identické.


Ten třetí způsob od uživatele kamowski mi také funguje, ale chová se jinak. Při zavřeném zdrojovém dokumentu hlásí chybu (neotevření dokumentu) a v propojených buňkách se objeví #N/A. Což je asi lepší.
Ten můj se pouze nezaktualizuje (zůstanou tam poslední hodnoty) bez jakéhokoliv varování.

#15 Re: Calc » Posun na poslední vyplněnou buǩu ve sloupci A (Vyřešeno) » 8. 6. 2023 13:11:10

Tady jsou nějaké moje testy:
Odkaz na soubor
Je tam i jiný způsob podle tlačítek (možná by mohlo být jen jedno ... )

#16 Re: Calc » Posun na poslední vyplněnou buǩu ve sloupci A (Vyřešeno) » 8. 6. 2023 13:00:31

Zdravím, tuto funkci co jsem napsal je fakt prasárna, ale funguje to:

Function ZapisNaKonec(lCol As Long, Val As Variant) As Long 
	Dim oSheet As Object, oCol As Object
	Dim oCell As Object, oEmpty As Object, oRg As Object
	Dim lRow As Long 	
	oSheet = ThisComponent.CurrentController.ActiveSheet
	oCol = oSheet.Columns.getByIndex(lCol)
	oEmpty = oCol.queryEmptyCells()
	oRg = oEmpty.getByIndex(oEmpty.getCount()-1)
	lRow = oRg.RangeAddress.StartRow
	' Zapíšeme hodnotu na konec zvoleného sloupce	
	oSheet.getCellByPosition(lCol, lRow).Value = Val 
	' Funkce vrátí číslo posledního řádku
	ZapisNaKonec = lRow
End Function

Má dva parametry číslo sloupce (A je 0, B je 1, atd) a hodnotu. Ta může odkazovat na libovolný místo (třeba A2). Pokud se do tohoto místa zapíše nějaká hodnota a stiskne se Enter, pak funkce vrátí číslo řádku do kterého se provede zápis a skutečně se tam ta hodnota zapíše. Což by nemělo fungovat, ale funguje to.

UPOZORNĚNÍ: Tuto funkci nedoporučuji používat (funkce by neměla zapisovat tam kam nemá), to je jen tak pro zajímavost

#17 Re: Calc » Posun na poslední vyplněnou buǩu ve sloupci A (Vyřešeno) » 7. 6. 2023 19:34:53

Nebo takto:

Sub GetLastRowInCol
	Dim oDoc As Object, oSheet As Object, oRange As Object, oCol As Object, oCell As Object, oLast As Object  
	oDoc	  = ThisComponent
	oSheet = oDoc.CurrentController.ActiveSheet	
	oCol = oSheet.Columns.getByIndex(oDoc.CurrentSelection.RangeAddress.StartColumn)	
	oLast = oCol.queryEmptyCells()
	oRange = oLast.getByIndex(oLast.getCount()-1)	
	oCell   = oCol.getCellByPosition(0, oRange.RangeAddress.StartRow)
	oDoc.CurrentController.select(oCell)
End Sub

#18 Re: Calc » Posun na poslední vyplněnou buǩu ve sloupci A (Vyřešeno) » 7. 6. 2023 19:01:54

Sub LastRowInColumn
	Dim oDoc As Object, oSheet As Object, oRange As Object, oColumn As Object, oCell As Object 
	Dim iColumn As Long, lCount As Long, lRow As Long 
 	oDoc	 = ThisComponent
 	oSheet = oDoc.CurrentController.ActiveSheet
 	iColumn = oDoc.CurrentSelection.RangeAddress.StartColumn
 	oColumn = oSheet.Columns.getByIndex(iColumn)
 	oRange = oColumn.queryContentCells(1023)
 	lCount = oRange.getCount()
 	If lCount>0 Then        
 		lRow = oRange.getByIndex(lCount-1).RangeAddress.EndRow+1
 		oCell = oColumn.getCellByPosition(0, lRow)
 		oDoc.CurrentController.select(oCell)
 	EndIf 
End Sub

#19 Re: Calc » Posun na poslední vyplněnou buǩu ve sloupci A (Vyřešeno) » 7. 6. 2023 12:45:19

Asi takhle?

Sub Main
	dim document   as object
	dim dispatcher as Object
	document   = ThisComponent.CurrentController.Frame
	dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
	
	' Na poslední vyplněnou ve sloupci
	dim args1(1) as new com.sun.star.beans.PropertyValue
	args1(0).Name = "By"
	args1(0).Value = 1
	args1(1).Name = "Sel"
	args1(1).Value = false
	
	dispatcher.executeDispatch(document, ".uno:GoDownToEndOfData", "", 0, args1())

	' O jednu dolů
	dim args2(1) as new com.sun.star.beans.PropertyValue
	args2(0).Name = "By"
	args2(0).Value = 1
	args2(1).Name = "Sel"
	args2(1).Value = false
	
	dispatcher.executeDispatch(document, ".uno:GoDown", "", 0, args2())
End Sub

#21 Re: Calc » Sčítaní barevných buněk / Výpočet na základě barvy - VYŘEŠENO » 10. 5. 2023 18:25:56

Zdravím,
souhlasím s tím, že to není dobrý nápad, nicméně jsem napsal funkci, která toto řeší (používá trik s časem, aby se provedl přepočet při změně barvy).
Odkaz na soubor: TrikSoucetBarev2.ods

#22 Re: Calc » calc,import html tables » 8. 5. 2023 12:16:53

Obávám se, že problém je mnohem složitější, než jak si myslíš. Tato stránka požadované tabulky generuje podle interakce s uživatelem.

#23 Re: Calc » calc,import html tables » 5. 5. 2023 15:41:14

Normálně jsem si označil tabulku, kterou chci zkopírovat (oranžově orámovaná), pak jsem ťuknul na "Copy table data to clipboard" a v Calcu jsem dal vložit.
Sn-mek-obrazovky-z-2023-05-05-16-32-30.png

#24 Re: Calc » calc,import html tables » 3. 5. 2023 15:19:07

Tu první tabulku jsem nahrál takto (bez úprav):
tabulka.ods
není to sice uplně přesný, asi malá editace by byla potřeba. Další tabulky jsem nezkoušel.

#25 Re: Calc » calc,import html tables » 2. 5. 2023 05:01:49

Zdravím,
hned to první rozšíření na té uvedené stránce mi fungovalo:
https://chrome.google.com/webstore/search/table

Zápatí

Používáme FluxBB