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

#1 20. 3. 2013 12:25:54

Gooorila
Člen
Registrace: 4. 10. 2009
Příspěvků: 48

Vkládání buňěk z jednoho místa dokumentu do druhého - VYŘEŠENO

Zdravím


Díky poradně jsem již spoustu věcí vyřešil, tak si troufnu napsat sem další dotaz, o kterém si sice nyní myslím, že je proveditelný velmi obtížně, pokud vůbec, ale "líná huba, holé neštěstí".
Práci si ulehčuji výrobními šablonami v OO Calcu, kde do formuláře zadám vstupní data a podle nich se vypisují délky potřebných materiálů. Ve výrobní šabloně mám i jednoduchý výkres výrobku (nakresleno v cadu, pak kopírovat a vložit na pozadí v calcu), kde jsou slepé kóty a hodnotu kóty mi vypisuje calc (v místě hodnoty je vzorec calcu a ten hodnotu vypisuje dle vstupů).


Nyní bych potřeboval výrobní šablonu upravit, protože narážím na problém ve výrobě (obrázek z cadu je jen orientační pro levé provedení a v případě, že je výrobek v pravém provedení, musí si to ve výrobě "domyslet". U jednodušších konstrukcí, jsem situaci vyřešil pomocí podmíněného formátování, ale byla to skutečně makačka. Nastavil jsem velikost buněk 2x2mm a v buňkách jsou vzorce. Pomocí podmíněného formátování jsem určil, zda se má konkrétní buňka podbarvit, nebo zůstat bez podbarvení a vhodným rozmístěním buněk se zobrazovaly a nezobrazovaly obrazce. Dokonce jsem musel i různě upravovat ohraničení buňky, takže to bylo skutečně jen u jednoduchých věcí (naznačení typu frézování, kdy se dle podmínek v profilu zobrazil čtverec, který potřebuji vyfrézovat a zároveň se objevily kóty s hodnotami).


Nyní ale řeším složitější šablonu, kde potřebuji otáčet celé profily a různě zobrazovat, což mi připadá nereálné vyřešit tímto postupem.
Neexistuje nějaká funkce, která by mi situaci pomohla vytvořit?


Představoval jsem si situaci, kdy mám dejme tomu nakresleny řezy a vím, že B2:S15 je varianta "Levé" a B18:S31 je varianta "Pravé" a nějaký vzorec mi dle zadané podmínky vloží do pole BT6:CK19 vloží obsah předešlých skupin polí. Zakreslil bych si pak několik variant a zobrazoval podle potřeb. Podobnou věc jsem používal i s těmi obrázky z cadu, které se zobrazily podle volby, ale tohle řešení se mi neosvědčilo.


Kdyby někdo tušil jak na to, pomohlo by mi to. Omlouvám se za dlouhý dotaz.


Test.ods

______________________________________
Značím jako vyřešené


;o)

Editoval sedlacekdan (4. 4. 2013 18:30:46)

Offline

#2 20. 3. 2013 17:45:54

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

Re: Vkládání buňěk z jednoho místa dokumentu do druhého - VYŘEŠENO

Teda je to asi zralé na makro. Samozřejmě předpokládám, že jste zkoušel "kopírovat" a následně otočit "transponováním" z dialogu vložit jinak. To Vám asi nestačí. Chápu sice že potřebujete vlastně otočit obrázky o 360 stupňů, ale máte již otočeno o 180. Takže když každý obrázek (levý i pravý) otočíte o 90° tak máte vše co potřebujete. Ale není to dokonalé. Zřejmě potřebujete zrcadlové otáčení o 180°. Tady to co už máte z leva do prava potřebujete ještě ohora dolů. Správně technicky podle obou os x;y.


  Takže považuji i tohle za možné, ale jen makrem. Nemám moc času, jinak bych Vám to snad i postavil.
1. Makrem lze projít určité pole a tam, kde je background zapsat například jedničku. Tím by vznikl obrazec jen z jedničky (místo barvy pozadí).
2. Jiným makrem vypočítat zrcadlovou vzdálenost podle obou os například v kvadrantu (-x, -y ).
3. Zase makrem udělat opačný proces. Tam kde jsou jedničky dát barvu pozadí a jedničku smazat.
5. pak už fakt stačí jen otáčet o 90°.
6. Nevím jestli by to fungovalo i s obrysem, ale mělo by.


Takže jde o to, zda si troufáte na makra, nebo Vám pomůže nějaká dobrá duše. Já toho mám nad hlavu. Pokud ale budete mít zájem (nebo někdo jiný) postnu sem ze svých knihoven makra, která pracují s formátem buněk. Ta se budou muset přizpůsobit.


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 20. 3. 2013 20:50:21

sedlacekdan
Moderátor
Místo Nehvizdy
Registrace: 21. 6. 2010
Příspěvků: 617

Re: Vkládání buňěk z jednoho místa dokumentu do druhého - VYŘEŠENO

Lze použít toto makro:

sub kopiruj
doc = thisComponent
dokument = doc.CurrentController
list = doc.Sheets(0)
vyber = list.getCellRangeByName("AN2").string
if vyber = "Levý" then
adresa = "B2:S15"
elseif vyber = "Pravý" then
adresa = "B18:S31"
' další možnosti elseif
endif
zkopiruj = list.getCellRangeByName(adresa)
dokument.select(zkopiruj)
obsah = dokument.getTransferable()
vloz = list.getCellRangeByName("BT6")
dokument.select(vloz)
dokument.insertTransferable(obsah)
end sub

Makro podle výběru zkopíruje danou specifikovanou oblast do cíle. Oblasti jsou v tomto případě definovány přímo v makru


Ta oblast "adresa" by šla vzít jako text i z buňky (po výběru Levý se pomocí VLOOKUP doplní do jiné buňky adresa "B2:S15" odkud si ji vezme makro).

sub kopiruj
doc = thisComponent
dokument = doc.CurrentController
list = doc.Sheets(0)
adresa = list.getCellRangeByName("AN3").string 'zde je funkce VLOOKUP,
'která dosadí adresu podle výběru Pravý/Levý....
zkopiruj = list.getCellRangeByName(adresa)
dokument.select(zkopiruj)
obsah = dokument.getTransferable()
vloz = list.getCellRangeByName("BT6")
dokument.select(vloz)
dokument.insertTransferable(obsah)
end sub

Můžete si takto stanovit kolik chcete možností.


Makro si pak přiřaďte ke klávesové zkratce, nebo k formulářovému prvku, který makro spustí.

;o)


Linux Mint 16 Petra - Apache OpenOffice 4.0.1
Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte tak orientaci na fóru při vyhledávání řešení problémů
JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#4 29. 3. 2013 07:29:45

Gooorila
Člen
Registrace: 4. 10. 2009
Příspěvků: 48

Re: Vkládání buňěk z jednoho místa dokumentu do druhého - VYŘEŠENO

Zdravím

Já moc děkuji za tipy a příklady. Omlouvám se, že reaguji až nyní, ale umíral jsem s ucpanýma dutinama.

Makro s vlookupem se mi nepovedlo rozchodit, ale druhý příklad je přesně to, co jsem potřeboval. V tuto chvíli jsem si začal malinko pročítat postovaný článek o makrech, protože jsem překvapen jak může něco tak jednoduchého tak obrovsky pomoci a také proto, že příklad mi v jednom dokumentu funguje a v druhém ne (musím přijít proč mi vyhazuje u jednoho dokumentu chybu). Moc děkuji.

Offline

#5 29. 3. 2013 20:28:20

sedlacekdan
Moderátor
Místo Nehvizdy
Registrace: 21. 6. 2010
Příspěvků: 617

Re: Vkládání buňěk z jednoho místa dokumentu do druhého - VYŘEŠENO

Gooorila napsal(a)

Makro s vlookupem se mi nepovedlo rozchodit

Mrkněte se na tento soubor, ta varianta s funkcí VLOOKUP je na obsluhu (změny) v dokumentu variabilnější, stačí si do VLOOKUP zadat větší adresu a na listu 2 li postupně doplňovat nákresy ke kopírování. Nemusíte tak při každé změně provádět změny ještě v makru.

Test2.ods


;o)


Linux Mint 16 Petra - Apache OpenOffice 4.0.1
Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte tak orientaci na fóru při vyhledávání řešení problémů
JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

Zápatí