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

#1 11. 3. 2019 19:33:02

liska vaclav
Člen
Registrace: 11. 2. 2005
Příspěvků: 19

Makra libreoffice 6.2

dobrý večer, mám pod Ubuntu 16.04 libreoffice calc 6.2 ( původněto bylo  6.1.5). Nahrát makro mi  jde , normálně se zapíše. Pokud chci si ho přehrát,( spustit makro ) tak se zavře celý Libreoffice. Ještě jsem zjistil, že v nouzi lze přehrát marko : makro-správce maker - vybrat makro  a dát spustit. Nevím zda jsem něco někde nenastavil blbě. Díky za odpověď. Vašek

Offline

#2 11. 3. 2019 19:59:26

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

Re: Makra libreoffice 6.2

Podívejte se jak to makro vypadá. Umne to normálně chodí jen to breptá při prvém spuštění o Javě ale pak to jde spustit. Možná to bez Javy blbne - i když to chodí i bez ní. Makro normálně otevřete a podívejte se co tam je nahráno. Když tak to nakopírujte sem. Ale když lze zavolat, pak existuje a mělo by jít spustit. Já to testoval pod W7, ale v tom by neměl být rozdíl. Může být nastaven jen nějaký firewall ale na Linuxu to není potřeba.


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 12. 3. 2019 10:06:52

liska vaclav
Člen
Registrace: 11. 2. 2005
Příspěvků: 19

Re: Makra libreoffice 6.2

zde je zkopírované vše co mám v makrech. datum se nedá vůbec spustit ani přes správce maker. Kolo jde spustit jen přes správce maker. Zkoušel vše v makrech odstranit, nepomohlo to. nyní jak klepnu na ikonu spustit makro, hned se zavře celý program libre.






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

Sub Main

End Sub
REM  *****  BASIC  *****

Sub ZapisDatum 'zapise datum zadane datumovym polem do bunky s kurzorem
dim oDoc, oSelect  as object
dim Result, shtname, DatPole as string, sht as integer
DatPole = "datum1" ' nazev ve vlastnostech datumoveho pole musi souhlasit
oDoc = ThisComponent 
oSelect=oDoc.CurrentSelection.getRangeAddress
'oBrowser(oDoc.CurrentSelection.getRangeAddress)
sht=oSelect.Sheet ' index listu s kurzorem
shtname=oDoc.sheets(sht).name 'jmeno listu
oDatum = oDoc.Sheets(sht).DrawPage.Forms(shtname).getByName(DatPole) ' odkaz na datumove pole
'oDatum.HelpText="Zadejte nebo vyberte datum které bude vloženo na místo kurzoru."
Result= oDatum.text
On Local Error GoTo NODOCUMENTTYPE ' ignoruje chyby - např nesmyslne zadane datum
' zapsat do bunky na ktere je kurzor.
if result <> "" then
  oDoc.sheets(sht).getCellByPosition(oSelect.StartColumn,oSelect.StartRow).Value = dateValue(Result)
else
  oDoc.sheets(sht).getCellByPosition(oSelect.StartColumn,oSelect.StartRow).string = ""
end if
exit sub
NODOCUMENTTYPE:
beep
End Sub




sub kolo
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "StringName"
args1(0).Value = "100"

dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args1())

rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "ToPoint"
args2(0).Value = "$E$7"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args2())

rem ----------------------------------------------------------------------
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "StringName"
args3(0).Value = "50"

dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args3())

rem ----------------------------------------------------------------------
dim args4(1) as new com.sun.star.beans.PropertyValue
args4(0).Name = "By"
args4(0).Value = 1
args4(1).Name = "Sel"
args4(1).Value = false

dispatcher.executeDispatch(document, ".uno:GoRight", "", 0, args4())


end sub

Offline

#4 12. 3. 2019 10:24:55

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

Re: Makra libreoffice 6.2

Problém je asi v makru ZapisDatum - konkrétně zde :

oDatum = oDoc.Sheets(sht).DrawPage.Forms(shtname).getByName(DatPole)

Správně je to takto :

oDatum = oDoc.Sheets(sht).DrawPage.Forms(shtname).getByName("DatPole")

     Sice je to chyba která by měla vrátit chybové hlášení, ale to je zřejmě nastavením. Musel bych se podívat kde se to dá navolit. Otestujte zda makro bude zlobit i po opravě.


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 12. 3. 2019 11:20:22

liska vaclav
Člen
Registrace: 11. 2. 2005
Příspěvků: 19

Re: Makra libreoffice 6.2

Můj laický pohled je někde v programu. jak dám spustit makro aniž bych vybral které , zavře se celý program. Pod win10 mě to také chodí. Nevím , možná celý problém byl v přechodu na Ubuntu16, a pak se mi podařilo naisntalovat libre jak 6.15, tak libre 6.2. Tyto dva programy jsem odinstaloval a opět jen nainstaloval libre 6.2. Díky za Vaši trpělivost. Možná, že někdo má s tímto už zkušenosti. Vašek

Offline

#6 12. 3. 2019 12:37:15

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

Re: Makra libreoffice 6.2

To je divné. Raději upřesním, že musíte postavit povolení maker na střední stupeň, vybrat adresář který má povoleno makra spouštět (po provolbě uložit) a pak makra spustit.


Makro "kolo" je v pořádku, a to datum po opravě také. Jen musíte mít v sešitě datumové pole (ovládací prvek přejmenovaný na "DatPole" originálně je tam "Datumové pole") takže takhle se to musí upravit.


Ještě může existovat souběh maker v názvu a to původní obsahuje něco jako Doc.Close. Také je otázkou kde máte makra zavedená - zda v nadřazení knihovně "Moje makra standard", nebo v lokolním sešitě "Standard".


Vím, že se mi něco podobného také stávalo, ale bylo to ve spojitosti s řadou LO 5.X.X a s deklarací "Option Explicid", ale verze 6.1.5. ani 6.2 tohle už nedělá. Já mám stroj s Ubuntu odstavený tak to neumím posoudit, ale myslím že v tom chyba nebude.

Editoval neutr (12. 3. 2019 12:38:49)


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

#7 13. 3. 2019 09:07:57

liska vaclav
Člen
Registrace: 11. 2. 2005
Příspěvků: 19

Re: Makra libreoffice 6.2

Mám Libreoffice i pod win10 a tam to pracuje bez problému. Mám na jednom PC jak win10 tak ubuntu. povolení maker mám na střední stupeň.Knihovna - moje makra standart. Ještě jsem nyní zjistil že při zápisu  jdou psát číslice(číselná klávesnice), ale  text až když použiji myš. Dle mého je chyba někde v programu anebo přímo v ubuntu. Makro lze spustit ze správce maker. Asi to nechám být. Díky

Offline

#8 19. 5. 2019 13:45:59

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

Re: Makra libreoffice 6.2

To mě na pracovních počítačích makra v 6.2 pustit šli ale pak procesor na plno a nikdy se nedokončilo. Vrátil jsem se zpět na 6.1.x a vše běhá tak jak má. Počkám na stabilní verzi a pak to zkusím znova.

Offline

Zápatí