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

#1 Re: Calc » jak odstranit řádky, které nemají požadovanou výšku » 25. 3. 2020 19:15:32

Myslel jsem makrem. Exporty nejsou možné. Zamknuto není. Nejde mě sem vložit screen pro představu, ale je to takhle:

řádek
1  - prázdný ,výška 0,2
2  - prázdný ,výška 0,2
3  - obsazené buňky - výška 1
4  - prázdný ,výška 0,2
5  - prázdný ,výška 0,2
6  - obsazené buňky - výška 1
7  - prázdný ,výška 0,2

a tak se to opakuje na několik stran

A já bych potřeboval:
1 - obsazené buňky - výška 1
2 - obsazené buňky - výška 1
3 - obsazené buňky - výška 1
4 - obsazené buňky - výška 1

#2 Calc » jak odstranit řádky, které nemají požadovanou výšku » 25. 3. 2020 18:17:17

csert
Odpovědí: 8

Daly by se odstranit všechny řádky které nemají požadovanou výšku? Mám výstup ze stroje kde v předloze ( nedá se upravit ) někdo nastavil vždy po vyplněném řádku ( výška 1,5 ) dva malé prázdné ( výška 0,2 ). A tak pořád dokola. Sice to vypadá přehledně, ale v tisku se report hrozně natahuje.
děkuji za radu

#3 Calc » vícenásobná podmínka IF/ELZE_VYŘEŠENO » 17. 12. 2015 07:55:56

csert
Odpovědí: 2

Zdravím.
Lámu si hlavu s vícenásobnou podmínkou IF.
Jestliže  A1<1 a zárověň B1>1  tak něco, nebo něco
Napadlo mě tohle, ale hází to chybu:
A1  B1
-1   1
=IF((A1<1);(B1>1);ano;ne)
Nemůžu příjít, jak podmínky řetězit.
moc dík

#4 Re: Calc » Jak neukládat tlačítko v calcu » 12. 6. 2014 11:36:11

pro "neutr"
Děkuji za rozbor používání šablon. Je to poučné.
Ale "moje" verze šablony, její otevírání ( jednoduše ze složky/otevři soubor ) editace a tlačítkem ulož jako soubor opravdu funguje. Přesně splňuje moje požadavky.Je to rychlé a uživatelsky přívětivé. Jediná vada na kráse je uložené nefunkční tlačítko. Pokud toto neodstraním budu muset napsat java utilitu na dávkovou konverzi do pdf a hidden tisk do acrobatu. Je to krok navíc, ale v dávce to půjde snadno. Teď pátrám, jestli by toto nešlo napsat makrem v calcu.

#5 Re: Calc » Jak neukládat tlačítko v calcu » 11. 6. 2014 11:47:56

Jak můžu samostatně volat :  sub uloz_do_zavreneho(URL)
když: sub uloz_do_zavreneho(ByVal adresa as string) je už jednou voláno ? yikes((
Pane neutr už mě zase trápíte yikes(((.
cit.:
Stačí jen na správném místě napsat volání :
sub uloz_do_zavreneho(URL)

#6 Re: Calc » Jak neukládat tlačítko v calcu » 11. 6. 2014 05:50:57

Děkuji za kód. Jenom nechápu jak pozná jaký dokument má otevřít? Kodu snad trochu rozumím, ale stejně  mě nechce " mazat"

#7 Calc » Jak neukládat tlačítko v calcu » 10. 6. 2014 09:19:19

csert
Odpovědí: 7

Hledám možnost jak zamezit uložení tlačítka ( ovládací prvky formuláře ) při uložení sešitu v calcu.
Jediná možnost ve vlastnostech tlačítka je tisknout/netisknout. Bohužel nic o ukládání.
Nemáte někdo radu?
dík

#8 Re: Calc » Makrem uložit dokument - Vyřešeno » 9. 6. 2014 08:46:39

A je to. Díky moc hlavně " rejze".
Jenom pro úplnost a přehlednost uvádím celý kod:

Sub uloz_protokol
Dim bunka_nazev as object,document as object
Dim nazev as string

Sheets = ThisComponent.Sheets
Sheet = Sheets.getByIndex(0)
bunka_nazev = sheet.GetCellByPosition (6,11) rem pro buňku G12, buňky jsou číslovány od O ne od 1
nazev = trim(bunka_nazev.string)
uloz_novy_sesit ("C:\( vlož celou cestu ).xls")
      zavri
       otevrit("C:\( vlož celou cestu ).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

#9 Re: Calc » Makrem uložit dokument - Vyřešeno » 5. 6. 2014 21:47:49

pro neutr.
Pane neutr. Děkuji za Vaši snahu mě navést k vytvoření kódu. Bohužel jsem " makro_laik" a Vaše rady mě jenom nutí se prokousávat programováním. Z Vašich odpovědí je vidět, že problematice rozumíte, ale toto nebylo předmětem vlákna. Pouze jsem potřeboval pomoct s vytvořením z mého pohledu jednoduchého kódu pro ukládání sešitu, kde bude název souboru obsahovat číslo v buňce. To mám částečně hotovo díky "rejze". Pouze se vyskytly související problémy s ukládáním. Shrnu to a požádám Vás o úpravu, nebo doplnění kódu. Případně mě kontaktujte na   csert@email.cz Děkuji.
Mám vytvořenou šablonu *.ots s tlačítkem ( třeba na buňce G18 )uvnitř listu ( list 1 ). Tlačítko má přiřazené makro na uložení šablony, kde v názvu souboru je obsah buňky G12 s příponou*.xls.
Až sem vše funguje. Bohužel potřebuji šablonu ukládat několikrát za sebou vždy s jiným názvem ( G12 ). Přepisuji v šabloně pár buněk.
Ale po uložení šablony zůstane otevřený sešit (G12).xls, kde již tlačítko nefungule. To je pochopitelné.
Můj dotaz zní. Bylo by možné do současného scriptu dopsat řádek
" zavři současný otevřený sešit *.xls ( nebo při uložení šablony sešit ani neotevírej )
a otevři šablonu *.ots "
kód makra:
Sub uloz
Dim bunka_nazev as object,document as object
Dim nazev as string

document= ThisComponent.CurrentController.Frame
bunka_nazev = ThisComponent.Sheets(0).GetCellByPosition(6,11) 'vybere bunku G12
nazev = trim(bunka_nazev.string)
uloz_novy_sesit ("C:\Documents and Settings\My Documents\"+nazev+".xls")
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

Moc děkuji za krátkou odpověď

#10 Re: Calc » Makrem uložit dokument - Vyřešeno » 4. 6. 2014 21:26:21

pro neutr:
1 / zkusil jsem dopsat ty dva řádky do " mého " scriptu " ulož a makro se hned zastavilo na prvním dopsaném řádku "" Sheets................   vlastnost, nebo metoda nenalezena......
Tak jsem zkusil ještě překopírovat celé Vaše makro a chyba byla stejné.

2 /  makro ulož prázdný se zastaví na  řádku  sFileName = this ...............vlastnost, nebo metoda nenalezena......
Bohužel moje znalosti chybu nevidí
Možná jsem neupřesnil, že opravdu používám Win a OO. Takže ani Linux, ani MS Excel
M

#11 Re: Calc » Makrem uložit dokument - Vyřešeno » 3. 6. 2014 21:04:05

rejze napsal(a)

Poračovat může. Zavře se a uloží. Potom si otevřete novou šablonu,případně pokud chcete automaticky znovu otevřít šablonu,tak to lze taky. Myslim,že potřebujete ukládat a cyklicky otvírat novou šablonu,dokud na dotaz msgboxu nezvolíte konec. Pokud je to tak. Až přijdu domů. Dám sem na to kód.


Ano je to tak. Potřebuji ukládat a cyklicky otevírat novou šablonu. Ukládaný sešit vidět nepotřebuji, nemusí se ani otevírat a msgbox mě taky nezajímá. Nemělo by nastat případ, že uložím dva stejné názvy. Pokud ano tak to nebude zas taková tragédie. Potřebuji tento úkon co nejvíce zjednodušit.
Otevřít, doplnit, uložit.
moc  děkuji

#12 Re: Calc » Makrem uložit dokument - Vyřešeno » 3. 6. 2014 01:47:20

rejze napsal(a)

Ještě tedy doplním,že tohle se používá pokud otvíráte sešit jako šablonu. Otevře se bezejména a tímto způsobem se potom pojmenuje podle buňky třeba datumem,nebo pořadovým číslem atd. Možná je to ve zkratce to co neutr rozepsal výše. Určitě si to dobře pročtěte,jelikož p.neutr vždycky dobře směruje. Navíc a možná to dělá záměrně,to nedá zadarmo,takže se člověk pak při tom naučí problém zvládnout sám.

A to je to poslední co mě dělá problém.
Mám bezejmennou šablonu *.ots s tlačítkem v listě, které má přiřazené makro z modulu standart. Makro změní a uloží šablonu na "název_buňky.xls" Až sem je to OK.
Ale teď mě zůstane otevřený sešit *.xls, kde už tlačítko s makrem nefunguje takže je třeba xls ručně zavřít a otevřít šablonu. A tím pádem makro ztrácí význam ( jak píše p.neutr. )
Nemohlo by makro pokračovat? xls neotvírat, nebo ho zavřít a nechat otevřenou šablonu. Bohužel nemohu takový příkaz najít. A docela mě pomohlo:
http://www.gymkrom.cz/web/ict/materialy … O-Calc.pdf

#13 Re: Calc » Makrem uložit dokument - Vyřešeno » 2. 6. 2014 21:35:31

pro rejze
už to maká, jenom jsem musel dopsat odkaz na list1

bunka_nazev = ThisComponent.Sheets(0).GetCellByPosition(9,6) 'vybere bunku J7

Teď se ješte pokusím prokousat neutr odpovědí

#14 Re: Calc » Makrem uložit dokument - Vyřešeno » 1. 6. 2014 22:40:22

rejze moc dík za pomoc, ale
ať se snažím sebevíc nejde mě přepsat cesta ukládaného sešitu.
Pokud začnu tak jako Ty
(" blabla\"nazev+".xls") tak to na mě řve ,, uvozovky nesouhlasí,,
, nebo očekává se ,.   
A pokud použiji funkční zápis "file:///C:/Documents%20and%20Settings/My%20Documents/01.xls"
tak taky nic.
Nějak tomu přestávám rozumět.

#15 Re: Calc » Makrem uložit dokument - Vyřešeno » 30. 5. 2014 08:45:24

Začnu také odzadu.
Makro mám " Moje-Standart". Pokud mám přiřazené tlačítko na liště tak vše funguje OK v jakémkoliv sešitě. Pokud vytvořím tlačítku uvnitř sešitu tak se přiřazení k makru ztratí po uložení sešitu.
Píšete:
"V knihovně "Moje - Standard" to najde každý sešit, ale v novém sešitě nové tlačítko neví co má spustit .... " a to nechápu.

Panem Sedláčkem jsem se trochu prokousal, ale tohle zrovna nezvládám.Asi jsem starší ročník. Vaše "trknutí " mě nepomohlo.
Snažím se nastavit proměnnou na buňku G12 jako název ukládaného souboru a buď TO na mě řve, chyba scriptu, nebo TO ukládá jenom jako SAVEAS
děkuji

Ještě jedna poznámka. Pan Sedláček píše o možnosti, že si sešit/tlačítko " nese" makro sebou. Chápu to, že se neodkazuje na knihovnu. To by bylo leště lepší řešení

#16 Re: Calc » Makrem uložit dokument - Vyřešeno » 29. 5. 2014 09:59:06

A teď jsem narazil na další problém. Tlačítko si nepamatuje přiřazenou akci ( makro ). Možná by to byl dotaz v jiném vlákně, ale snad se tady někdo chytne.
dík

#17 Calc » Makrem uložit dokument - Vyřešeno » 29. 5. 2014 06:12:18

csert
Odpovědí: 21

V tabulce mám vytvořené tlačítku s přiřazenou funkcí makra " uložit " dokument. To funguje bez možnosti změnit název souboru. Potřeboval bych, aby se ukládaný soubor jmenoval podle např. vloženého čísla v buňce A1. Ukládaná cesta je pevně nadefinovaná v makru.
děkuji za snahu
M.

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

sub ulozto
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(1) as new com.sun.star.beans.PropertyValue
args1(0).Name = "URL"
args1(0).Value = "file:///C:/Documents%20and%20Settings/My%20Documents/01.xls"
args1(1).Name = "FilterName"
args1(1).Value = "MS Excel 97"

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


end sub

Takhle to vypadá, když to ukládá pod " pevným názvem "

#18 Re: Calc » funkce IF/Else VYŘEŠENO » 6. 3. 2014 12:55:30

Zamknout buňku není problém, ale to tam pak nepůjde nic dopsat. Myslel jsem zamknout pouze formát,vzorec.....tzn. vše z roletky " smazat obsah " okrem čísla. Číslo potřebuji dopsat a jedině číslo smazat. Jinak je zbytek atributu buňky chráněn proti přepsání a smazání.

#19 Re: Calc » funkce IF/Else VYŘEŠENO » 6. 3. 2014 08:48:50

Zase problém. Vytvořené styly jsou vidět pouze v otevřeném  dokumentu ( kde je styl vytvořen ), nebo jsou použitelné pro každý list, sešit, dokument.......? Všude vidím pouze výchozí, nadpis...., ale né ty moje.
A za druhé. Dá se nějak zamknout použitý styl v buňce proti smazání. Potřeboval bych zamknout všechny atributy  v buňce pouze ponechat dopisování čísla.
dík

#20 Re: Calc » funkce IF/Else VYŘEŠENO » 6. 3. 2014 07:50:53

Neutr  moc díky. Skvělá odpověď i rady. Styly mám pojmenovaný a je to " vlastně " jednoduchý.

#21 Calc » funkce IF/Else VYŘEŠENO » 6. 3. 2014 06:41:26

csert
Odpovědí: 6

dobrý den, potřeboval bych poradit s funkcí IF. Nevím jak do stejné buňky kde je argument ( číslo )
napsat IF a pokud je nepravda tak změnit argument( číslo ) na červeno. Pokud pravda tak nic.
děkuji

#22 Re: Calc » ukončit makro pokud není splněna podmínka - VYŘESENO » 3. 3. 2014 12:32:39

A už to běží jak potřebuji. Asi mě tam chyběl jeden REM. No prostě to funguje
díky

#23 Re: Calc » ukončit makro pokud není splněna podmínka - VYŘESENO » 3. 3. 2014 12:29:13

Omlouvám se, ale jsem " nechápavý Tomáš". Nevím jaký kod mám vložit abych ukončil běh.

#24 Calc » ukončit makro pokud není splněna podmínka - VYŘESENO » 3. 3. 2014 09:14:09

csert
Odpovědí: 3

Dobrý den, potřebuji hned po spuštění ukončit běh makra pokud není v otevřeném listě v buňce B3 hodnota_číslo 100.
Zkoušel jsem si pohrát s příkazem IF, ale nevím jak definovat buňku B3.
děkuji

sub uprava_xls
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 = "ToPoint"
args1(0).Value = "$A$2:$J$2"

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

rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "Flags"
args2(0).Value = "U"

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

rem ----------------------------------------------------------------------
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "ToPoint"
args3(0).Value = "$A$3:$J$3"

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

rem ----------------------------------------------------------------------

#25 Re: Calc » kopírování souborů_makro - VYŘEŠENO » 3. 3. 2014 08:29:47

děkuji za snahu. Vyřešil jsem to jinak. Ale to není obsahem tohoto fóra.

Zápatí

Používáme FluxBB