Zdravím. Jen pro upřesnění. Pracujete v CALC se souborem .xls? To by mohlo vysvětlovat,proč si tlačítko nepamatuje přiřazenou funkci. Ukládání pod názvem podle obsahu buňky lze takto.
Sub uloz
Dim bunka_nazev as object,document as object
Dim nazev as string
Sheets = ThisComponent.Sheets 'tohle scházelo
Sheet = Sheets.getByIndex(0) 'tohle scházelo
bunka_nazev = sheet.GetCellByPosition (9,6) 'vybere bunku J7 - tohle je upravené
nazev = trim(bunka_nazev.string)
uloz_novy_sesit ("/home/já/dokumenty/"+nazev+".xls") 'zustane promenna nazev+".xls" cestu nutno upravit
zavri
otevrit("Cesta k sablone/sablona.ots")
end sub
Sub uloz_novy_sesit (optional cesta as string)
dim oDoc as object
on error goto chyba
oDoc=ThisComponent
with oDoc
if (not .hasLocation) or .isReadOnly then' pokud jeste nebyl ulozen, nebo je jen pro cteni
.storeAsURL(ConvertToURL(cesta), Array()) ' ulozit jako
else
.store() ' ulozit
end if
end with
exit sub
chyba:
msgbox("chyba!!!",0,"Chyba uloz_novy_sesit")
stop
end sub
sub zavri
dim oDoc as object
oDoc=ThisComponent
oDoc.Close(true)
end sub
Sub otevrit(optional cesta as string)
Dim oArgs(2) As New com.sun.star.beans.PropertyValue
Dim oDoc
oFileName = cesta
oURL = ConvertToUrl(oFileName)
oArgs(0).Name="AsTemplate"
oArgs(0).Value= true
oArgs(1).Name="TemplateName"
oArgs(1).Value = "oCalc_template"
oArgs(2).Name="TemplateRegionName"
oArgs(2).Value= "oCalcTemplateRegion"
oDoc = StarDesktop.LoadComponentFromUrl(oURL, "_blank", 0, oArgs())
Dim oGArgs
Dim oDocArgs$ as String
Dim i%
On Error Resume Next
oGArgs = oDoc.getArgs()
for i = 0 to UBound(oGArgs)
oDocArgs = oDocArgs & oGArgs(i).Name & " = "
oDocArgs = oDocArgs & oGArgs(i).Value
oDocArgs = oDocArgs & Chr$(10)
next i
End Sub
Tlacitku priradite prvni makro uloz a to si zavolá uloz_novy_sesit.
Mělo by to fungovat. Také si upravte bunku J7 podle toho kam vkládáte ten název.