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

#1 3. 7. 2022 11:55:06

barevnej
Člen
Registrace: 6. 8. 2015
Příspěvků: 143

Ukládat pomocí makra (VYŘEŠENO)

Krásný letní den přeji smile
_
Mám myšlenku a zkusím jí popsat.
Mám tabulku která se nějak jmenuje "_2022_SALE.ods" jméno je pokaždé jiné.
Pak v tabulce mám vždy na místě X3 jméno zákazníka.
_
Dám "uložit jako.." vždy do stejné složky "tady by mi stačilo vědět kam napsat cestu v onom makru"
Výsledný název souboru je obsah X3 + datum (bez roku pač ten už je obsažen v názvu) + zbytek původního názvu.
Příklad: X3=Zákazník  Jméno původního souboru _2022_SALE.ods
Výsledný uložený soubor Zákazník_3_7_2022_SALE.ods
ps. datum neumsí striktně být bez úvodních nul, tj jestli to bude Zákazník_03_07_2022_SALE.ods nevadí, i když původní varianta je "hezčí"
Soubor hned prosím nezavírat, ještě s ním dále pracuji.

Editoval barevnej (6. 7. 2022 08:41:29)

Offline

#2 3. 7. 2022 14:44:53

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 3,364

Re: Ukládat pomocí makra (VYŘEŠENO)

Snad jsem to pochopil správně _2022_Sale.ods. V sešitě je makro, které si musíte nějak aktivovat například v hlavním menu, tlačítkem v listu, ikonou, klávesovou zkratkou ...


Moje e-mailová adresa
Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte orientaci při vyhledávání řešení JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#3 3. 7. 2022 15:50:12

barevnej
Člen
Registrace: 6. 8. 2015
Příspěvků: 143

Re: Ukládat pomocí makra (VYŘEŠENO)

Po spuštění makra se titulek okna přejmenuje naprosto správně jak jsem chtěl.
Jenže soubor se neuloží...
_
Teď mě napadlo zda by nešlo aby po spuštění makra vyskočilo okno "Uložit jako.." s tím že by už byla předvyplněn onen název a já si jen klikl kam ho uložit. smile Toto by bylo dokonalé.
_
Jde o to když takovou opreci denně opakujete nespočetkrát tak proto hledám jak si práci usnadnit.
_
ps: oSheet = Sheets.getByName("Nabídka") tam může být přímo aktuální list? Tlačítko by bylo umístěno na něm.

Offline

#4 3. 7. 2022 17:12:13

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 3,364

Re: Ukládat pomocí makra (VYŘEŠENO)

Z této věty jsem usoudil, že nemáte o ukládání zájem "Soubor hned prosím nezavírat, ještě s ním dále pracuji." Samozřejmá dále pracovat a zavřít je odlišná potřeba.


     K tomuto "ps: oSheet = Sheets.getByName("Nabídka") tam může být přímo aktuální list? Tlačítko by bylo umístěno na něm." : To je určení listu se kterým se pracuje. Pro Vás by to mělo znamenat, že tam napíšete aktuální název. Pokud by tam byla deklarace "Active sheet" tak to by platilo pro list, který je aktuálně otevřený. Nyní mám dojem, že listy se mohou jmenovat podle zákazníka. Potom v tom políčku může být místo jména tlačítko, které načte do názvu sešitu název listu (tedy zákazníka).


     Pokud byste potřeboval ukončít uložením přejmenovaného sešitu do specifické složky, je to možné skutečně na jediné kliknutí kterým vyskočí dialog FillePickeru kterým navolíte adresu.


     Také by bylo vhodné, když byste znal adresáře korespondující se jmény zákazníků. Pak by to bylo kliknutí na tlačítko a konec.


     Také asi nevíte, že když přejmenujete sešit a uložíte, zůstane tento nově přejmenovaný otevřený a původní se buď zavře, nebo uteče z fokusu. (Jde o to jak sešit _2022_Sale.ods otevíráte).Mohla by to být například šablona. Nebo se to otevírá jako kopie a potom zůstane stále otevřený, jen ne vždy po zavření upravené verze se vrátí do aktivního fokusu.
     Jde o to, že můžeme po uložení a zavření přejmenovaného aromaticky znovu otevřít zdroj, nebo udělat kopii v novém sešitě a ten uložit a zavřít z jedné vody načisto. Prostě raději popište přesně jak by to mělo vypadat.
     Dokonce jsem původně přemýšlel, zda v tomto sešitě _2022_Sale.ods nemáte více zákazníků. Těm by to šlo nabídnout podle cyklu, nebo podle výběru. Je mi jasné, že ne každému zákazníkovi nabízíte stejný sortiment a dost možná pod různými cenovými benefity. Ale dá se nasimulovat něco podobného jako má Writer "Hromadnou korespondenci". Může to být choulostivé a postnout zavedenému zákazníkovi špatnou nabídku, nebo cenu by byl doslova malér. Pokud to má takové předpoklady napište na privátní email. Můžete mi poslat například telefon, aby jsme se rychleji dopracovali a já se nemusel vyptávat na varianty.


Moje e-mailová adresa
Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte orientaci při vyhledávání řešení JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#5 4. 7. 2022 07:30:46

barevnej
Člen
Registrace: 6. 8. 2015
Příspěvků: 143

Re: Ukládat pomocí makra (VYŘEŠENO)

Dobrý den, máte pravdu že jsem to popsal zmatečně. Omlouvám se.
Je fakt že jsem si to u druhé odpovědi rozmyslel a proto ten zmatek.
Zkusím to popsat znova smile
_2022_SALE.ods je vzorový soubor do kterého vyplňuji objednávku, proto ho nepřepisuji ale ukládám jako nový soubor.
Po spuštění makra by bylo stejné jako bych klikl na "Uložit jako..." s tím že by se předvyplnil název souboru a já bych si jen zvolil kam si ho chci uložit.
2022-07-04_08-23.png
_
Nyní to dělám stejně jen s tím že si název souboru vyplňuju ručně.

Offline

#6 4. 7. 2022 10:56:55

LADER
Člen
Registrace: 3. 4. 2013
Příspěvků: 115

Re: Ukládat pomocí makra (VYŘEŠENO)

Zdravím,
já jsem to pochopil jinak - možná špatně, a za to se hned omlouvám.
Možná by pomohlo toto rozšíření libreOffice Timestamp Backup, které zavádí nové tlačítko na lištu. Po jeho stisknutí uloží název souboru s přidaným datumem a časem. Jméno adresáře, kam se soubory budou ukládat lze nastavit a může být jiné než defaultní.

Editoval LADER (4. 7. 2022 10:58:00)


Ubuntu 20.04.4 LTS, LibreOffice Verze: 7.2.7.2, wxMaxima 19.07.0, Maxima 5.46.0 (SBCL)

Offline

#7 4. 7. 2022 11:53:42

barevnej
Člen
Registrace: 6. 8. 2015
Příspěvků: 143

Re: Ukládat pomocí makra (VYŘEŠENO)

@LADER To bych bral jen pokud by to nešlo udělat makrem, jakože nouzovku. smile

Offline

#8 6. 7. 2022 08:40:44

barevnej
Člen
Registrace: 6. 8. 2015
Příspěvků: 143

Re: Ukládat pomocí makra (VYŘEŠENO)

Tak veliké díky neutr wink
Vzhledem k tomu že výsledek je lepší než li jsem očekával tak jsem upravil i původní požadavky.
V principu to funguje takto. Máte soubor Tabulka.ods kde v buňce X3=Zákazník aktivního listu máte jméno zákazníka a po spuštění tohoto makra se soubor sám uloží kam si ho nasměrujete ve formátu Zákazník_6_7_2022_Tabulka.ods
Jistě se toto může hodit každému kdo často ukládá něco dle nějakého pravidla wink
_

REM  *****  BASIC  *****

Sub Ulozit_jako_datumem
Dim oSheet
Dim sVar, sVal as string
Dim iCount, iLeft as integer
Dim Propval()
Sheets = ThisComponent.getSheets()
oSheet = ThisComponent.CurrentController.ActiveSheet
sVar = ConvertFromUrl(ThisComponent.URL)
sVal = oSheet.getCellRangeByName("X3").String
sVal = sVal & "_" & Day(NOW) & "_" & Month(NOW) & "_" & Year(NOW)& ThisComponent.Title & ""
sVar = FilPickFolder()
FileURL = convertToURL(sVar & "/" & sVal)
ThisComponent.StoreAsURL(FileURL, Propval())
End Sub

Function FilPickFolder()
	Dim oFolderPicker As Object
	Dim oAccept As Integer
	Dim oFolder()
	Dim oFolderURL as String, oGetFolderName as String
		oFolderPicker = createUnoService("com.sun.star.ui.dialogs.FolderPicker")
		oFolderPicker.setTitle ("Vyber složku kam uložit")
		oFolderPicker.setDisplayDirectory("file:///home/uživatelské_jméno/Plocha/") '<-toto je cesta v Linuxu kde chete aby se Vám průzkumník otevřel. Ve windows by cesta začínala takto bez file:/// -> D:/   Nebo tento řádek odstraňte a bude Vám nabízet výchozí adresář systému.
		oFolderPicker.setDescription("Vyber adresář")
		oAccept = oFolderPicker.execute()
		If oAccept = 1 Then
			oFolder() = oFolderPicker.getDirectory()
     		oFolderURL = oFolder(0)
     		oGetFolderName = ConvertFromURL(oFolderURL)
     		FilPickFolder = oGetFolderName
     	else
     		oFolderPicker.cancel()
   		End If
End Function

Editoval barevnej (6. 7. 2022 08:43:46)

Offline

Zápatí