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

#1 2. 11. 2009 19:14:50

Borivoj
Člen
Registrace: 2. 11. 2009
Příspěvků: 10

Prosim, pomozte s Makrem/Funkci

Doufam, ze to na foru nikde neni, ja to nenasel.

1) Je mozny, aby mi v bunce bezel aktualni cas?

2) Potreboval bych makro, ktery aktivuju tlacitkem a jednorazove zapise do dane bunky definovanou hodnotu. (prepise obsah bunky)

3) Potreboval bych makro, ktery precte cislo z bunky A, pricte cislo z bunky B a vysledkem prepise hodnotu v bunce A. Opet ho potrebuju aktivovat jednorazove stiskem tlacitka.

Diky za pomoc

Offline

#2 2. 11. 2009 22:39:32

hanus
Člen
Místo Olomouc
Registrace: 29. 11. 2006
Příspěvků: 573
Web

Re: Prosim, pomozte s Makrem/Funkci

ad 2+3) vizte soubor
http://ooo.e-hanus.cz/pricitani.01.ods

ad 1) nevím, jak by to šlo udělat, aby čas v listu/sešitu stále běžel, aniž by se něco zmáčklo nebo spustilo - spuštěním makra jo, ale to by se pak nedalo nic jiného dělat si myslím

Offline

#3 3. 11. 2009 04:59:51

Borivoj
Člen
Registrace: 2. 11. 2009
Příspěvků: 10

Re: Prosim, pomozte s Makrem/Funkci

Neslo by to s tim casem udelat nejak prez databazi?

Offline

#4 3. 11. 2009 07:30:51

Ondra.kl
Člen
Registrace: 30. 9. 2008
Příspěvků: 933

Re: Prosim, pomozte s Makrem/Funkci

a na co to vlastně potřebujete?

Offline

#5 4. 11. 2009 18:06:49

Borivoj
Člen
Registrace: 2. 11. 2009
Příspěvků: 10

Re: Prosim, pomozte s Makrem/Funkci

TAk mam dalsi dotazy.

Potrebuju upravit makro tak, aby zapsalo hodnotu do vsech bunek v oblasti. Jak se definuje oblast?

Jak se spousti marko makrem?

Nemate nekdo odkaz na seznam vsech prikazu pro makra a jejich funkci? Abych vas tu porad neotravoval.

Offline

#6 5. 11. 2009 13:31:08

Borivoj
Člen
Registrace: 2. 11. 2009
Příspěvků: 10

Re: Prosim, pomozte s Makrem/Funkci

Nevite nekdo, co tu mam spatne?

sub Reset
   
    list = 3
    radekz = 3
    radekk =252
    sloupec = 14
    hodnota = 0

   
    dokument = ThisComponent
    vyber = dokument.currentselection
    list = dokument.sheets(list)
    oblast = list.getCellRangebyposition(sloupec ,radekz, sloupec, radekk)
   
oblast.value = hodnota
   
end sub

Offline

#7 6. 11. 2009 08:08:29

Borivoj
Člen
Registrace: 2. 11. 2009
Příspěvků: 10

Re: Prosim, pomozte s Makrem/Funkci

mno nic, napsal jsem to takhle:

   If radekz < radekk then
Do
   radekz = radekz + 1
   bunka_erase = list.getCellbyposition(sloupec_1, radekz)
   bunka_erase.setvalue(0)   
Loop Until radekz = radekk
   End if

Offline

#8 6. 11. 2009 08:56:51

j-pastierik
Člen
Registrace: 15. 11. 2004
Příspěvků: 761

Re: Prosim, pomozte s Makrem/Funkci

Borivoj napsal(a)

Nevite nekdo, co tu mam spatne?

sub Reset
   
    list = 3
    radekz = 3
    radekk =252
    sloupec = 14
    hodnota = 0

   
    dokument = ThisComponent
    vyber = dokument.currentselection
    list = dokument.sheets(list)
    oblast = list.getCellRangebyposition(sloupec ,radekz, sloupec, radekk)
   
oblast.value = hodnota
   
end sub

Je tam toho viac:
list = dokument.sheets(list) - nemôžte do číselnej premennej "list" (to, že je číselná ste zadefinovali priradením list=3) priradiť objekt, takže to by ste mali naprogramovať takto:
olist = dokument.sheets(list)
oblast = olist.getCellRangebyposition(sloupec ,radekz, sloupec, radekk)

Ďalej:   
oblast.value = hodnota - oblasť nemá jednu hodnotu, takže neexistuje oblast.value. Momentálne vám ale nepoviem, ako to má byť, lebo to neviem.

Offline

#9 7. 11. 2009 02:07:10

rjanku
Člen
Registrace: 7. 4. 2008
Příspěvků: 8

Re: Prosim, pomozte s Makrem/Funkci

Borivoj napsal(a)

Neslo by to s tim casem udelat nejak prez databazi?

Proč přes databázi? Je to sice taková samoúčelná kokotinka, ale dá se to udělat makrem v Basicu, něco jako tohle:

Sub DisplayTime
Dim oDoc As Object
Dim oSheet As Object
Dim oCell As Object

oDoc=ThisComponent
oSheet=oDoc.Sheets.getByName("List1")
rem bude to v B2
oCell=oSheet.getCellByposition(1,1)
Do
oCell.SetString(Now)
Wait 1000
Loop While 1
End Sub

Offline

#10 7. 11. 2009 02:22:20

rjanku
Člen
Registrace: 7. 4. 2008
Příspěvků: 8

Re: Prosim, pomozte s Makrem/Funkci

hanus napsal(a)

ad 2+3) vizte soubor
ad 1) nevím, jak by to šlo udělat, aby čas v listu/sešitu stále běžel, aniž by se něco zmáčklo nebo spustilo - spuštěním makra jo, ale to by se pak nedalo nic jiného dělat si myslím

Ale jo, jde to, viz makro níže, bude to fungovat, i když se bude současně psát do buněk. Ale možná to vyhodí chybovou hlášku při zavírání souboru (asi podle použitého běhového prostředí javy v systému). Takže buď jedno dvoustavové nebo dvě tlačítka spustit-zastavit a před zavřením to nezapomenout zastavit.

Offline

#11 10. 11. 2009 15:50:05

Borivoj
Člen
Registrace: 2. 11. 2009
Příspěvků: 10

Re: Prosim, pomozte s Makrem/Funkci

Narazil jsem na zajimavou zvlastnost. Nefunguje mi >= nebo <= . Krajni hodnoty ( = ) mi makro ignorovalo. Osetril jsem to jinak, ale zajimalo by mne, jestli jen delam neco spatne, nebo VB <= a >= skutecne nezna.

Editoval Borivoj (10. 11. 2009 15:51:06)

Offline

#12 10. 11. 2009 15:57:34

Borivoj
Člen
Registrace: 2. 11. 2009
Příspěvků: 10

Re: Prosim, pomozte s Makrem/Funkci

Tohle je muj nejlepsi vytvor 7 dni pote, co jsem zjistil, ze existuje VB. Kdyby jste si nekdo vsimnul, ze delam neco zbytecne slozite, byl bych rad za radu.


Sub cteni_data

    list_cteni = 1
    sloupeccteni = 0
    list_zapis = 0
    sloupeczapis = 10
    radekcteni = 0
    radekzapis = 7
    sloupecj = 9
    sloupecor = 8
    max = 0
    sloupecstop = 1
    radekstop = 6
    sloupecmax = 13
    sloupeca = 0
    radektimea = 10
    radektimeb = 11
    radektime1a = 23
    radektime1b = 24
    radektime2a = 33
    radektime2b = 34
    radektime3a = 43
    radektime3b = 44
    radekdatea = 6
    radekdateb = 7
    radekdate1a = 20
    radekdate1b = 21
    radekdate2a = 30
    radekdate2b = 31
    radekdate3a = 40
    radekdate3b = 41
       
    dokument = ThisComponent
    vyber = dokument.currentselection
    listcteni = dokument.sheets(list_cteni)
    listzapis = dokument.sheets(list_zapis)
    bunkastop = listzapis.getcellbyposition(sloupecstop, radekstop)
   
    time1a = listzapis.getcellbyposition(sloupeca, radektime1a)
    time1b = listzapis.getcellbyposition(sloupeca, radektime1b)
    time2a = listzapis.getcellbyposition(sloupeca, radektime2a)
    time2b = listzapis.getcellbyposition(sloupeca, radektime2b)
    time3a = listzapis.getcellbyposition(sloupeca, radektime3a)
    time3b = listzapis.getcellbyposition(sloupeca, radektime3b)
    timea = listzapis.getcellbyposition(sloupeca, radektimea)
    timeb = listzapis.getcellbyposition(sloupeca, radektimeb)
    date1a = listzapis.getcellbyposition(sloupeca, radekdate1a)
    date1b = listzapis.getcellbyposition(sloupeca, radekdate1b)
    date2a = listzapis.getcellbyposition(sloupeca, radekdate2a)
    date2b = listzapis.getcellbyposition(sloupeca, radekdate2b)
    date3a = listzapis.getcellbyposition(sloupeca, radekdate3a)
    date3b = listzapis.getcellbyposition(sloupeca, radekdate3b)
    datea = listzapis.getcellbyposition(sloupeca, radekdatea)
    dateb = listzapis.getcellbyposition(sloupeca, radekdateb)
       
Do
    bunkacteni = listcteni.getcellbyposition(sloupeccteni, radekcteni)
    bunkazapis = listzapis.getcellbyposition(sloupeczapis, radekzapis)
    bunkaj = listcteni.getcellbyposition(sloupecj, radekcteni)
   

IF((fix(bunkacteni.value)>datea.value) and (fix(bunkacteni.value)<dateb.value)) Then
   
if (fix(bunkacteni.value) > fix(bunkazapis.value)) then

                bunkazapismax = listzapis.getcellbyposition(sloupecmax, radekzapis)
                bunkazapismax.setvalue(max)
                max = 0
                radekzapis = radekzapis + 1
                bunkazapis = listzapis.getcellbyposition(sloupeczapis, radekzapis)
                bunkazapis.setvalue(bunkacteni.value)   
                bunkaor = listzapis.getcellbyposition(sloupecor, radekzapis)
               
            If     ((bunkaor.value>date1a.value) and (bunkaor.value<date1b.value) and ((bunkacteni.value-fix(bunkacteni.value))>time1a.value) and ((bunkacteni.value-fix(bunkacteni.value))<time1b.value)) then
            if (bunkaj.value > max) then
            max = bunkaj.value
            end if
            Elseif    ((bunkaor.value>date2a.value) and (bunkaor.value<date2b.value) and ((bunkacteni.value-fix(bunkacteni.value))>time2a.value) and ((bunkacteni.value-fix(bunkacteni.value))<time2b.value)) then
            if (bunkaj.value > max) then
            max = bunkaj.value
            end if
            Elseif ((bunkaor.value>date3a.value) and (bunkaor.value<date3b.value) and ((bunkacteni.value-fix(bunkacteni.value))>time3a.value) and ((bunkacteni.value-fix(bunkacteni.value))<time3b.value)) then
            if (bunkaj.value > max) then
            max = bunkaj.value
            end if
            Else
            if ((bunkacteni.value-fix(bunkacteni.value)>timea.value) and (bunkacteni.value-fix(bunkacteni.value)<timeb.value)) then
            if (bunkaj.value > max) then
            max = bunkaj.value
            end if
            end if   
            End if   
else
           
            If     ((bunkaor.value>date1a.value) and (bunkaor.value<date1b.value) and ((bunkacteni.value-fix(bunkacteni.value))>time1a.value) and ((bunkacteni.value-fix(bunkacteni.value))<time1b.value)) then
            if (bunkaj.value > max) then
            max = bunkaj.value
            end if
            Elseif    ((bunkaor.value>date2a.value) and (bunkaor.value<date2b.value) and ((bunkacteni.value-fix(bunkacteni.value))>time2a.value) and ((bunkacteni.value-fix(bunkacteni.value))<time2b.value)) then
            if (bunkaj.value > max) then
            max = bunkaj.value
            end if
            Elseif ((bunkaor.value>date3a.value) and (bunkaor.value<date3b.value) and ((bunkacteni.value-fix(bunkacteni.value))>time3a.value) and ((bunkacteni.value-fix(bunkacteni.value))<time3b.value)) then
            if (bunkaj.value > max) then
            max = bunkaj.value
            end if
            Else
            if ((bunkacteni.value-fix(bunkacteni.value)>timea.value) and (bunkacteni.value-fix(bunkacteni.value)<timeb.value)) then
            if (bunkaj.value > max) then
            max = bunkaj.value
            end if
            end if   
            End if
end if

END IF

radekcteni = radekcteni + 1

loop until    radekcteni = 65536 or bunkastop.value = 1

msgbox "Ufffffffff. To byla ale drina. smile ",10,"Hotovo"

bunkastop.setvalue(0)

End Sub

Sub vynulovat

    listt = 0
    radekk = 8
    sloupec1 = 10
    sloupec2 = 13
   
    dokument = ThisComponent
    vyber = dokument.currentselection
    list = dokument.sheets(listt)
   
        radekz = 373
        Do
        radekz = radekz - 1
        bunka_erase = list.getCellbyposition(sloupec1, radekz)
        bunka_erase.setvalue(0)
        Loop Until radekz = radekk   
       
        radekz = 373
        Do
        radekz = radekz - 1
        bunka_erase2 = list.getCellbyposition(sloupec2, radekz)
        bunka_erase2.setvalue(0)   
        Loop Until radekz = radekk
       
msgbox "Cisto",10,""       
       
End Sub

Sub stp

    listt = 0
    sloupecstop = 1
    radekstop = 6
   
    dokument = ThisComponent
    vyber = dokument.currentselection
    list = dokument.sheets(listt)
   
    bunkastop = list.getcellbyposition(sloupecstop, radekstop)
    bunkastop.setvalue(1)

End Sub

Offline

#13 20. 3. 2010 00:26:15

dech
Člen
Registrace: 1. 10. 2008
Příspěvků: 150

Re: Prosim, pomozte s Makrem/Funkci

Ahojte, mám prapodivný problém s makrem, které jednoduše kopíruje bunku z listu2 do listu1. bunku vkladam do cilove bunky bez vzorce a s formátem zdrojové bunky. Z pro mě nepochopitelného důvodu se po prvním provedení makra formát bunky nezkopíruje - zůstane předchozí formát. Po druhém provedení je již formát zkopírován správně.
Prapodivnější je ještě toto: tlačítko spouštějící makro je v listě1(cílový list). Pokud je tlačítko v zdrojovém listě(list2) tak se kopie formátu provede napoprvé správně.
Zasílám soubor kde mám tento případ ukázaný:
http://www.edisk.cz/stahni/39440/kopie_ … .86KB.html
no  co vy na to? nepochopitelné.


LO 6.1.2.1. (x64)  WIn 8 64bit  16GB RAM

Offline

#14 20. 3. 2010 18:00:31

hanus
Člen
Místo Olomouc
Registrace: 29. 11. 2006
Příspěvků: 573
Web

Re: Prosim, pomozte s Makrem/Funkci

to Borivoj: složitě děláte např. cykly - pro cyklus s předem známým počtem opakování se používá FOR-NEXT, tj. váš kód

        radekz = 373
        Do
        radekz = radekz - 1
        bunka_erase = list.getCellbyposition(sloupec1, radekz)
        bunka_erase.setvalue(0)
        Loop Until radekz = radekk   

- tady navíc dekrementujete radekz ještě před použitím v adresaci, takže ho musíte nastavit o jedničku větší, a taky asi není nutné mazat odzdola nahoru, takže bych to přepsal takto:

radekz=372
For r=radekk To radekz
        bunka_erase = list.getCellbyposition(sloupec1, r)
        bunka_erase.setvalue(0)
Next r


Kdybyste potřeboval projít souvislou oblast řádků a sloupců, dá se to zkrátit pomocí dvou zanořených FOR-NEXT:

radek_start=10
radek_end=100
sl_start=20
sl_end=30
For r=rade_start To radek_end
  For s=sl_start To sl_end
        bunka_erase = list.getCellbyposition(s, r)
        bunka_erase.setvalue(0)   
  Next s
next r

Offline

#15 20. 3. 2010 18:06:56

hanus
Člen
Místo Olomouc
Registrace: 29. 11. 2006
Příspěvků: 573
Web

Re: Prosim, pomozte s Makrem/Funkci

to Borivoj: makro makrem se spouští, resp. volá jeho názvem, např.

Sub hlavni_makro
  ...
  pod_makro()
  ...
End Sub

Sub pod_makro
  ...
End Sub


Kdyby mělo pod_makro parametry na vstupu, pak se volá pod_makro(param1,param2,...)

Vlastně tam už makro/funkci voláte - fix(bunkacteni.value)  - v OpenOffice funkce Fix neexistuje, takže buďto je vaše vlastní, nebo to není OpenOffice Basic a pak jste ve špatném fóru :-)

Offline

#16 20. 3. 2010 19:36:28

hanus
Člen
Místo Olomouc
Registrace: 29. 11. 2006
Příspěvků: 573
Web

Re: Prosim, pomozte s Makrem/Funkci

to dech:

1) nemůžete i v List1 použít vzorec? proč to musíte kopírovat přes makro?

2A) není pravda, že když se makro spouští z List1 tak kopíruje formát napoprvé, blbne i tak, záleží, jaké jsou výchozí podmínky před spuštěním makra

2B) makra zaznamenaná pomocí nahrávání bohužel obvykle nefungují dobře, je nutné programovat

2C) tak jsem to naprogramoval a taky to blbne :-) což mě teda přivedlo ke zkoumání a vyšlo z toho to, že problém dělá ta funkce STYLE, možná v kombinaci s tím formulářovým prvkem select - když vyberete auto nebo motorka, tak se změna v List2 neprovede okamžitě, ale např. až když se na něj přepnete, nebo něco v List1 uděláte, např. spustíte makro - proto se ten formát zkopíruje až po jeho druhém spuštění; před spuštěním makra (ať už vámi zaznamenaného nebo mnou naprogramovaného) je tedy nutné vynutit přepočítání pomocí klávesy F9, pak už oba makra fungují napoprvé

Když přepočítání vynutím v makru, pořád to nefunguje. Už jsem nad tím strávil příliš hodně času, možná je problém ještě jinde, ale už se tím nehodlám zabývat. Kdyby někdo chtěl pokračovat v bádání, tak moje makro pro dechem uvedený soubor je:

sub kopiruj_bunku

    ThisComponent.Calculate

    oSheets = ThisComponent.Sheets
    oSheet1 = oSheets.getByName("List1")
    oSheet2 = oSheets.getByName("List2")

    bunka_hodnota = oSheet2.getcellbyposition(2, 5).String
    bunka_format = oSheet2.getcellbyposition(2, 5).Cellstyle

    oSheet1.getcellbyposition(3, 8).String = bunka_hodnota
    oSheet1.getcellbyposition(3, 8).Cellstyle = bunka_format

end sub

Editoval hanus (20. 3. 2010 20:31:35)

Offline

#17 21. 3. 2010 23:27:43

dech
Člen
Registrace: 1. 10. 2008
Příspěvků: 150

Re: Prosim, pomozte s Makrem/Funkci

diky za snahu

1)totiž je to takto: vytvářím často seznam o X řádcích a cca 10 sloupcích. Spousta informací které se objeví(a jejich formát) v každém řádku se dá zautomatizovat přes vzorečky-ovšem nakonec to potřebuju mít v bunkach bez vzorecku protoze s temi informacemi dělají další lidi, kteří by se se vzorci zaboha nesžili a taky jde o aktuálnost dat v daném okamžiku.
Důvod toho, proč nemám vzorcový řádek zároven v listu1(kde se vytváří nějaký seznam), je ten, že nemumím naučit makro aby se vrátilo na poslední pozici seznamu, kde by mělo vložit data ze vzorcového řádku. Když mám ovšem vzorcový řádek v jiném listě(list2) tak nic složitého s poslední pozicí umístění kurzoru nemusím vymýšlet - makro: lehce se přepnu do  listu se vzorcovým řádkem - makro si zkopíruje vzorcový řádek(ten s daty vytvořenými pomocí vzorců),přepne se zpět do prvního listu kde vytvářím seznam a nechám data vložit z paměti do listu bez vzorečků -důležité je to,že kurzor v  listě1 je tam kde jsem ho nechal když jsem se překlikával do listu2 - na konci seznamu. -To je celé makro. Posunu kurzor o řádek níž, nastavím si nové hodnoty ve vzorcovém řádku(podle hodnot se některým bunkám nastaví jiný formát) a spustím makro - to vloží nové hodnoty s novými formáty do seznamu -do řádku kde jsem po minulém vložení hodnot posunul kurzor - o řádek níž. Tak vzniká seznam.

Pokud bych se nějak naučil pamatovat si makro tu správnou polohu kurzoru - mám vyhráno. To je ovšem těžke protože pod seznamem který aktuálně vytvářím, je ten minulý a pod ním je ten předminulý - to kůli kontrole návaznosti dat (pro ostatní spolupracovník,já bych to nějak kontroloval skrze vzorce). Takže nějaké vzorce na poslední neprázdnou bunku nelze použít.

2A) - ano,když se spustí (v tom souboru co jsem uploadoval) v listu1 tak se bunka zkopíruje blbe. Až po druhém zkopírování(druhém stisku tlačítka v listu1 se konečně formát zkopíruje správně. Když ovšem stisknete tlačítko v druhém listě, které spouští to samé makro - tak se formát zkopíruje(vloží) do listu1 správně napoprvé.

2B)sice pronikám do tajů maker (nějaké si nahraju a pak ho zkoumám v OO Basicu) ...ale zas takový borec jeste nejsem


zkoušel jsem na to takové finty jako třeba že se to má vložit do daného řádku dvakrát zasebou na stejné místo (díky té zkušenosti že po druhém stisknutí tlačítka se to podařilo) - taky nefungovalo

To s tím přepočítáváním (F9) opravu funguje! Tak jsem se to okusil zakomponovat do makra a nefungovalo to - ikdyž jsem při zááznamu makra F9 zmáčknul tak se při vykonání makra to zmáčnutí asi nestalo. Ikdyž v basicu to vypadá že se přepočítání vykonává,tak to stejně nefunguje:
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Calculate", "", 0, Array())

Jediné z těchto možných řešení by pomohlo ale nevím jak na něj:
1) naučit makro pamatovat si původní pozici kurzoru po jeho přesunutí a po vykonání úkonu umístit kurzor zpět na původní pozici. - JO!to by bylo supr kdyby existovala nějaká fce. která by vracela jako hodnotu pozici kurzoru v jeho n-té změně před jeho poslední změnou. např.: název fce. LASTCURPOS(3)  a to by znamenalo že se objeví v této bunce souradnice kurzoru,kde byl než třikrát změnil polohu. ...kdyby kdyby
2)zprovoznit přepočítání sešitu v makru (F9)-jde přepočítání spustit jinak než F9?
3)zmáčknout tlačítko v listě2 aniž bych v tomto listě byl. - makro které mačká tlačítko v listě2 ? - zkoušel jsem ale nešlo(ikdyž při nahrávání makra vše fungovalo)(ale makro jsem "nahrával" - neprogramoval a zdálo by se mi podezřelé kdyby to opravdu nešlo ani naprogramovat)
4)udělám si 3 vzorCové řádky s předdefinovanými formáty bunek (ano mám jen tři kombinace formátů bunek které se v seznamu obměnují) a naučím makro si vybrat jeden z těchto tří řádků ke zkopírování. - což je to co neumím - dá se nějak lidsky udělat makro, které by podle nějaké hodnoty v bunce vědělo že má spustit to správné ze tří maker(1. makro pro zkopírování 1. řádku,2.M pro 2.Ř a 3.M pro 3.Ř)?

5)...už třičtvrtě hodiny sestavuji tuhle odpověd a nechám si o možném řešení zdát...

Editoval dech (22. 3. 2010 23:56:55)


LO 6.1.2.1. (x64)  WIn 8 64bit  16GB RAM

Offline

#18 23. 3. 2010 23:04:16

hanus
Člen
Místo Olomouc
Registrace: 29. 11. 2006
Příspěvků: 573
Web

Re: Prosim, pomozte s Makrem/Funkci

Tak to je pakárna - jděte do kódu makra, za řádky, kde se skáče na List2, tj.

dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Nr"
args1(0).Value = 2
dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args1())

vložte příkaz čekání:

wait(100)

a začne to fungovat. Makro se totiž v List2 na chvíli zastaví, dá vzorečkům čas na přepočítání a pak už se kopíruje správný obsah a formát. Bez toho čekání se totiž ten vzoreček se STYLE po přepnutí na List2 nestihne přepočítat. Tohle mi fakt hlava nebere, je to hodně hloupé chování, ale zcela jistě má svůj důvod :-)

Offline

#19 23. 3. 2010 23:27:54

dech
Člen
Registrace: 1. 10. 2008
Příspěvků: 150

Re: Prosim, pomozte s Makrem/Funkci

bravoooo! a fungovalo to hned! diky!
btw. jsem zkusil zadat i 1 milisekundu  wait(1) a taky to fungovalo...ale radsi tam dam aspon 20 at je to jiste

a kdyby existovaly nějaké jednoduché návody jak zprovoznit mnou navrhovaná řešení,tak by mě zajímalo(a později do praxe) jak by se uvedly v reálu - hlavně bod 1)-pozice kurzoru a  4) - jak naučit tabulku vybrat si pro spuštění to správné makro?-na základě hodnoty v bunce: když bude v bunce "0" by se mělo spustit nějaké makro a kdy tam bude např "1" tak by se mělo spustit jiné makro.

Editoval dech (23. 3. 2010 23:31:26)


LO 6.1.2.1. (x64)  WIn 8 64bit  16GB RAM

Offline

#20 24. 3. 2010 23:38:21

hanus
Člen
Místo Olomouc
Registrace: 29. 11. 2006
Příspěvků: 573
Web

Re: Prosim, pomozte s Makrem/Funkci

Níže je odkaz na soubor s několika makry - některá jsou naprogramovaná, jiná nahraná. Snad je to něco z toho, co potřebujete.
http://ooo.e-hanus.cz/makra-kurzor.01.ods

Offline

#21 25. 3. 2010 06:44:12

dech
Člen
Registrace: 1. 10. 2008
Příspěvků: 150

Re: Prosim, pomozte s Makrem/Funkci

jen jsem to zbezne vyzkousel a myslim ze to k mým cílům povede - hezkyyy! opravdu hezký.diky. Ted si ty makra musim rozpitvat a pochopit jak fungujou. btw. sem taky prijmenim Hanuš :-)


LO 6.1.2.1. (x64)  WIn 8 64bit  16GB RAM

Offline

#22 26. 3. 2010 17:24:41

hanus
Člen
Místo Olomouc
Registrace: 29. 11. 2006
Příspěvků: 573
Web

Re: Prosim, pomozte s Makrem/Funkci

btw. já nejsem příjmením Hanuš :-)

Editoval hanus (26. 3. 2010 17:52:44)

Offline

#23 26. 3. 2010 17:51:45

dech
Člen
Registrace: 1. 10. 2008
Příspěvků: 150

Re: Prosim, pomozte s Makrem/Funkci

tak co to je za prezdivku toto... smile


LO 6.1.2.1. (x64)  WIn 8 64bit  16GB RAM

Offline

#24 4. 10. 2010 21:48:14

dech
Člen
Registrace: 1. 10. 2008
Příspěvků: 150

Re: Prosim, pomozte s Makrem/Funkci

ahojte,jsem tu po delší odmlce zpět, ale nejspíš toto bude pro "místní" zívačka:
potřebuju aby se mi do bunky nastavil pomocí makra tento vzorecek:
=IF(A(jaky_radek)<1;"ano";"ne")
mam napsane k tomuto tuto cast makra(uz pouzivam dlouho takze vim ze problem je jen zde):
list.getCellByPosition(0,0).SetFormula("=IF(A(jaky_radek)<1;""ano"";""ne"")")
Problem mam s tou promennou "jaky_radek" - nevim jak to tam zadat aby to OO bral jako definouvanou promennou, ktera se meni(např. jednou je to č. 6 někdy 55 apod.-aby vznikla nějaá souřadnice A6 nebo A55). Tak jak to mam napsane nyní, tak to tam OO cpe jako text a vzorec je nefunkcni
Spravny obsah bunky A1 by mel byt: "=IF(A55<1;"ano";"ne")"
diky za tipy


LO 6.1.2.1. (x64)  WIn 8 64bit  16GB RAM

Offline

#25 5. 10. 2010 05:16:14

j-pastierik
Člen
Registrace: 15. 11. 2004
Příspěvků: 761

Re: Prosim, pomozte s Makrem/Funkci

list.getCellByPosition(0,0).SetFormula("=IF(A"+trim(str(jaky_radek))+"<1;""ano"";""ne"")")

Offline

Zápatí