Kako npisati uslovnost
|
|
|||
Postovanje,
Makro bi trebao da odradi sledece: ako je A1 celija prazna, da pastuje u nju kopirani sadrzaj iz celije C1, a ukoliko je celija A1 vec ispunjena nekim brojem da onda sadrzaj iz celije C1 pastuje u celiju A2. Kako ovu komandu napisati u obliku makroa, hteo bih da ga povezem sa dugmetom za potvrdu, kao deo jedne vece akcije.... Srdacan pozdrav, Stevanovic Vladislav |
|||
|
|||
Hvala na trudu, ovo radi. medjutim, hteo sam da prosirim broj celija u koji se ubacuje
odredjena vrednost iz celije C1, pa sam osim A1 i A2 celije dodao celije sve do A19. Medjutim, program mi javlja " Greska tokom iyvrsavanja bejzika. Procedura ili funkcija nije izvrsena." i selektovao mi je u programu red Select Case Cell(A1).Type kao problematican. Dole su moje izmene. Boldirao sam red na koji se odnosi problem. Kod: sub UbaciUPraznuCeliju --- On Sat, 9/19/09, Ljubomir Ljubojevic <office@plcomputers.net> wrote: From: Ljubomir Ljubojevic <office@plcomputers.net> Subject: Re: [sr.openoffice.org] Kako npisati uslovnost To: users@sr.openoffice.org Date: Saturday, September 19, 2009, 3:52 PM Uf, uf, uf. Evo resenja, ali nije bas elegantno. Do sada sam radio samo sa MS Office VBA i Visual Basic okruzenjem, i tamo sam znao da dobijem ekstenzije objekata u padajucoj listi. Za OpenOffice Basic syntax-u sam morao da kopam po internetu. Ako neko zna kako se dobija padajuca lista sa svim dostupnim vrednostima, molim vas da mi to i objasnite. Evo makro-a: Kod: sub ProveraIUnos Reference su na osnovu pozicije u tablici, a provereva se da li je celija A1 totalno prazna ili ne, pa se upisuje vrednost u odredjenu celiju. Pozdrav, Ljubomir Ljubojevic PL Computers vladislav stevanovic wrote: > Postovanje, > Makro bi trebao da odradi sledece: ako je A1 celija prazna, da pastuje u nju kopirani sadrzaj iz celije C1, a ukoliko je celija A1 vec ispunjena nekim brojem da onda sadrzaj iz celije C1 pastuje u celiju A2. Kako ovu komandu napisati u obliku makroa, hteo bih da ga povezem sa dugmetom za potvrdu, kao deo jedne vece akcije.... Srdacan pozdrav, Stevanovic Vladislav > > > |
|||
|
|||
Izvinite, ali sam nesto pogresno napisao u proslom priomeru (celija C6 i C9 umesto C1) Malo sam preterao sa tim opsegom, pa iz razumljivih razloga, da bi bilo sve preglednije, jer ovde se radi o principu rada, kao primer, smanjio sam opseg i dodao samo jos jednu celiju (A3). problem koji sada iskrsava jeste da mi se odjednom ispunjava A2 i A3, kada je A1 ispunjena. Kada je celija A1 vec ispunjena pokretanjem makroa se iapunjavaju odmah A2 i A3, a novim pokretanjem makroa A4. Izgleda da tu treba nesto doraditi...Ispod je izmena: sub UbaciBre Dim Doc As Object Dim Sheet As Object Dim CellA1 As Object Dim CellA2 As Object Dim CellA3 as Object Dim CellC1 As Object Doc = ThisComponent Sheet = Doc.Sheets(0) CellA1 = Sheet.getCellByPosition(0, 0) CellA2 = Sheet.getCellByPosition(0, 1) CellA3 = Sheet.getCellByPosition(0, 2) CellC1 = Sheet.getCellByPosition(2, 0) Select Case CellA1.Type Case com.sun.star.table.CellContentType.EMPTY CellA1.Value=CellC1.Value Case else CellA2.Value=CellC1.Value Case else CellA3.Value=CellC1.Value End Select end sub Srdacan pozdrav |
|||
|
|||
U hvala! Ovo radi savrseno!
Jos jednom hvala na strpljenju i vremenu! Srdacan pozdrav, Stevanovic Vladislav --- On Sat, 9/19/09, Ljubomir Ljubojevic <office@plcomputers.net> wrote: From: Ljubomir Ljubojevic <office@plcomputers.net> Subject: Re: [sr.openoffice.org] Kako npisati uslovnost To: users@sr.openoffice.org Date: Saturday, September 19, 2009, 6:48 PM Vrlo je jednostavno. Ne trebaju zagrade. Nije Cell(A1) vec CellA1. Dosta je kasno, idealno vreme za ovakve sitne previde. Preporucujem prijatan san i nastavak ujutro. Ali ovo nece moci ovako. Prvo "Case else" znaci "u svim ostalim slucajevima uradi..." sto moze da se koristi samo jednom u Case petlji inace ce odraditi upis u sva polja redom. Takodje, ono sto vi hocete je da program pronadje prvo slobodno polje i tu unese izmene, a to znaci da moraju da postoje visestruke, ugnezdene, petlje, u trenutnom slucaju jedno 18 komada. Ipak, nasao sam zadovoljavajuce resenje: Sub ProveraIUnos Dim Doc As Object Dim Sheet As Object Dim CellA1 As Object Dim CellA2 As Object Dim CellA3 As Object Dim CellA4 As Object Dim CellA5 As Object Dim CellA6 As Object Dim CellA7 As Object Dim CellA8 As Object Dim CellA9 As Object Dim CellA10 As Object Dim CellA11 As Object Dim CellA12 As Object Dim CellA13 As Object Dim CellA14 As Object Dim CellA15 As Object Dim CellA16 As Object Dim CellA17 As Object Dim CellA18 As Object Dim CellA19 As Object Dim CellA20 As Object Dim CellC1 As Object Doc = ThisComponent Sheet = Doc.Sheets(0) CellA1 = Sheet.getCellByPosition(0, 0) CellA2 = Sheet.getCellByPosition(0, 1) CellA3 = Sheet.getCellByPosition(0, 2) CellA4 = Sheet.getCellByPosition(0, 3) CellA5 = Sheet.getCellByPosition(0, 4) CellA6 = Sheet.getCellByPosition(0, 5) CellA7 = Sheet.getCellByPosition(0, 6) CellA8 = Sheet.getCellByPosition(0, 7) CellA9 = Sheet.getCellByPosition(0, 8) CellA10 = Sheet.getCellByPosition(0, 9) CellA11 = Sheet.getCellByPosition(0, 10) CellA12 = Sheet.getCellByPosition(0, 11) CellA13 = Sheet.getCellByPosition(0, 12) CellA14 = Sheet.getCellByPosition(0, 13) CellA15 = Sheet.getCellByPosition(0, 14) CellA16 = Sheet.getCellByPosition(0, 15) CellA17 = Sheet.getCellByPosition(0, 16) CellA18 = Sheet.getCellByPosition(0, 17) CellA19 = Sheet.getCellByPosition(0, 18) CellC1 = Sheet.getCellByPosition(2, 0) If (CellA1.Type = com.sun.star.table.CellContentType.EMPTY) then CellA1.Value = CellC1.Value elseif (CellA2.Type = com.sun.star.table.CellContentType.EMPTY) then CellA2.Value = CellC1.Value elseif (CellA3.Type = com.sun.star.table.CellContentType.EMPTY) then CellA3.Value = CellC1.Value elseif (CellA4.Type = com.sun.star.table.CellContentType.EMPTY) then CellA4.Value = CellC1.Value elseif (CellA5.Type = com.sun.star.table.CellContentType.EMPTY) then CellA5.Value = CellC1.Value elseif (CellA6.Type = com.sun.star.table.CellContentType.EMPTY) then CellA6.Value = CellC1.Value elseif (CellA7.Type = com.sun.star.table.CellContentType.EMPTY) then CellA7.Value = CellC1.Value elseif (CellA8.Type = com.sun.star.table.CellContentType.EMPTY) then CellA8.Value = CellC1.Value elseif (CellA9.Type = com.sun.star.table.CellContentType.EMPTY) then CellA9.Value = CellC1.Value elseif (CellA10.Type = com.sun.star.table.CellContentType.EMPTY) then CellA10.Value = CellC1.Value elseif (CellA11.Type = com.sun.star.table.CellContentType.EMPTY) then CellA11.Value = CellC1.Value elseif (CellA12.Type = com.sun.star.table.CellContentType.EMPTY) then CellA12.Value = CellC1.Value elseif (CellA13.Type = com.sun.star.table.CellContentType.EMPTY) then CellA13.Value = CellC1.Value elseif (CellA14.Type = com.sun.star.table.CellContentType.EMPTY) then CellA14.Value = CellC1.Value elseif (CellA15.Type = com.sun.star.table.CellContentType.EMPTY) then CellA15.Value = CellC1.Value elseif (CellA16.Type = com.sun.star.table.CellContentType.EMPTY) then CellA16.Value = CellC1.Value elseif (CellA17.Type = com.sun.star.table.CellContentType.EMPTY) then CellA17.Value = CellC1.Value elseif (CellA18.Type = com.sun.star.table.CellContentType.EMPTY) then CellA18.Value = CellC1.Value else MsgBox("I zadnje polje je popunjeno",16,"Error") End if end sub vladislav stevanovic wrote: > Hvala na trudu, ovo radi. medjutim, hteo sam da prosirim broj celija u koji se ubacuje > odredjena vrednost iz celije C1, pa sam osim A1 i A2 celije dodao celije sve do A19. Medjutim, program mi javlja " Greska tokom iyvrsavanja bejzika. Procedura ili funkcija nije izvrsena." i selektovao mi je u programu red Select Case Cell(A1).Type > kao problematican. Dole su moje izmene. Boldirao sam red na koji se odnosi problem. > sub UbaciUPraznuCeliju > > > Dim Doc As Object > Dim Sheet As Object > Dim CellA1 As Object > Dim CellA2 As Object > Dim CellA3 As Object > Dim CellA4 As Object > Dim CellA5 As Object > Dim CellA6 As Object > Dim CellA7 As Object > Dim CellA8 As Object > Dim CellA9 As Object > Dim CellA10 As Object > Dim CellA11 As Object > Dim CellA12 As Object > Dim CellA13 As Object > Dim CellA14 As Object > Dim CellA15 As Object > Dim CellA16 As Object > Dim CellA17 As Object > Dim CellA18 As Object > Dim CellA19 As Object > Dim CellA20 As Object > Dim CellC6 As Object > > > > > Doc = ThisComponent > Sheet = Doc.Sheets(0) > > > CellA1 = Sheet.getCellByPosition(0, 0) > CellA2 = Sheet.getCellByPosition(0, 1) > CellA3 = Sheet.getCellByPosition(0, 2) > CellA4 = Sheet.getCellByPosition(0, 3) > CellA5 = Sheet.getCellByPosition(0, 4) > CellA6 = Sheet.getCellByPosition(0, 5) > CellA7 = Sheet.getCellByPosition(0, 6) > CellA8 = Sheet.getCellByPosition(0, 7) > CellA9 = Sheet.getCellByPosition(0, 8) > CellA10 = Sheet.getCellByPosition(0, 9) > CellA11 = Sheet.getCellByPosition(0, 10) > CellA12 = Sheet.getCellByPosition(0, 11) > CellA13 = Sheet.getCellByPosition(0, 12) > CellA14 = Sheet.getCellByPosition(0, 13) > CellA15 = Sheet.getCellByPosition(0, 14) > CellA16 = Sheet.getCellByPosition(0, 15) > CellC17 = Sheet.getCellByPosition(0, 16) > CellA18 = Sheet.getCellByPosition(0, 17) > CellA19 = Sheet.getCellByPosition(0, 18) > CellC9 = Sheet.getCellByPosition(2, 0) > > > Select Case Cell(A1).Type > Case com.sun.star.table.CellContentType.EMPTY > CellA1.Value = CellC1.Value > Case else > CellA2.Value = CellC1.Value > Case else > CellA3.Value = CellC1.Value > Case else > CellA4.Value = CellC1.Value > Case else > CellA5.Value = CellC1.Value > Case else > CellA6.Value = CellC1.Value > Case else > CellA7.Value = CellC1.Value > Case else > CellA8.Value = CellC1.Value > Case else > CellA9.Value = CellC1.Value > Case else > CellA10.Value = CellC1.Value > Case else > CellA12.Value = CellC1.Value > Case else > CellA13.Value = CellC1.Value > Case else > CellA14.Value = CellC1.Value > Case else > CellA15.Value = CellC1.Value > Case else > CellA16.Value = CellC1.Value > Case else > CellA17.Value = CellC1.Value > Case else > CellA18.Value = CellC1.Value > Case else > CellA19.Value = CellC1.Value > End Select > > > end sub > > --- On Sat, 9/19/09, Ljubomir Ljubojevic <office@plcomputers.net> wrote: > > > From: Ljubomir Ljubojevic <office@plcomputers.net> > Subject: Re: [sr.openoffice.org] Kako npisati uslovnost > To: users@sr.openoffice.org > Date: Saturday, September 19, 2009, 3:52 PM > > > Uf, uf, uf. Evo resenja, ali nije bas elegantno. Do sada sam radio samo sa MS Office VBA i Visual Basic okruzenjem, i tamo sam znao da dobijem ekstenzije objekata u padajucoj listi. Za OpenOffice Basic syntax-u sam morao da kopam po internetu. Ako neko zna kako se dobija padajuca lista sa svim dostupnim vrednostima, molim vas da mi to i objasnite. > > > Evo makro-a: > > sub ProveraIUnos > > Dim Doc As Object > Dim Sheet As Object > Dim CellA1 As Object > Dim CellA2 As Object > Dim CellC1 As Object > > Doc = ThisComponent > Sheet = Doc.Sheets(0) > > CellA1 = Sheet.getCellByPosition(0, 0) > CellA2 = Sheet.getCellByPosition(0, 1) > CellC1 = Sheet.getCellByPosition(2, 0) > > Select Case CellA1.Type > Case com.sun.star.table.CellContentType.EMPTY > CellA1.Value=CellC1.Value > Case else > CellA2.Value=CellC1.Value > End Select > > end sub > > Reference su na osnovu pozicije u tablici, a provereva se da li je celija A1 totalno prazna ili ne, pa se upisuje vrednost u odredjenu celiju. > > Pozdrav, > Ljubomir Ljubojevic > PL Computers > > > vladislav stevanovic wrote: >> Postovanje, >> Makro bi trebao da odradi sledece: ako je A1 celija prazna, da pastuje u nju kopirani sadrzaj iz celije C1, a ukoliko je celija A1 vec ispunjena nekim brojem da onda sadrzaj iz celije C1 pastuje u celiju A2. Kako ovu komandu napisati u obliku makroa, hteo bih da ga povezem sa dugmetom za potvrdu, kao deo jedne vece akcije.... Srdacan pozdrav, Stevanovic Vladislav >> >> >> > > > > > |
|||
|
|||
Uf, uf, uf. Evo resenja, ali nije bas elegantno. Do sada sam radio samo
sa MS Office VBA i Visual Basic okruzenjem, i tamo sam znao da dobijem ekstenzije objekata u padajucoj listi. Za OpenOffice Basic syntax-u sam morao da kopam po internetu. Ako neko zna kako se dobija padajuca lista sa svim dostupnim vrednostima, molim vas da mi to i objasnite. Evo makro-a: sub ProveraIUnos Dim Doc As Object Dim Sheet As Object Dim CellA1 As Object Dim CellA2 As Object Dim CellC1 As Object Doc = ThisComponent Sheet = Doc.Sheets(0) CellA1 = Sheet.getCellByPosition(0, 0) CellA2 = Sheet.getCellByPosition(0, 1) CellC1 = Sheet.getCellByPosition(2, 0) Select Case CellA1.Type Case com.sun.star.table.CellContentType.EMPTY CellA1.Value=CellC1.Value Case else CellA2.Value=CellC1.Value End Select end sub Reference su na osnovu pozicije u tablici, a provereva se da li je celija A1 totalno prazna ili ne, pa se upisuje vrednost u odredjenu celiju. Pozdrav, Ljubomir Ljubojevic PL Computers vladislav stevanovic wrote: > Postovanje, > > Makro bi trebao da odradi sledece: ako je A1 celija prazna, da pastuje u nju kopirani > sadrzaj iz celije C1, a ukoliko je celija A1 vec ispunjena nekim brojem da onda sadrzaj iz > celije C1 pastuje u celiju A2. Kako ovu komandu napisati u obliku makroa, hteo bih da ga > povezem sa dugmetom za potvrdu, kao deo jedne vece akcije.... > > Srdacan pozdrav, > Stevanovic Vladislav > > > |
|||
|
|||
Vrlo je jednostavno. Ne trebaju zagrade. Nije Cell(A1) vec CellA1. Dosta
je kasno, idealno vreme za ovakve sitne previde. Preporucujem prijatan san i nastavak ujutro. Ali ovo nece moci ovako. Prvo "Case else" znaci "u svim ostalim slucajevima uradi..." sto moze da se koristi samo jednom u Case petlji inace ce odraditi upis u sva polja redom. Takodje, ono sto vi hocete je da program pronadje prvo slobodno polje i tu unese izmene, a to znaci da moraju da postoje visestruke, ugnezdene, petlje, u trenutnom slucaju jedno 18 komada. Ipak, nasao sam zadovoljavajuce resenje: Sub ProveraIUnos Dim Doc As Object Dim Sheet As Object Dim CellA1 As Object Dim CellA2 As Object Dim CellA3 As Object Dim CellA4 As Object Dim CellA5 As Object Dim CellA6 As Object Dim CellA7 As Object Dim CellA8 As Object Dim CellA9 As Object Dim CellA10 As Object Dim CellA11 As Object Dim CellA12 As Object Dim CellA13 As Object Dim CellA14 As Object Dim CellA15 As Object Dim CellA16 As Object Dim CellA17 As Object Dim CellA18 As Object Dim CellA19 As Object Dim CellA20 As Object Dim CellC1 As Object Doc = ThisComponent Sheet = Doc.Sheets(0) CellA1 = Sheet.getCellByPosition(0, 0) CellA2 = Sheet.getCellByPosition(0, 1) CellA3 = Sheet.getCellByPosition(0, 2) CellA4 = Sheet.getCellByPosition(0, 3) CellA5 = Sheet.getCellByPosition(0, 4) CellA6 = Sheet.getCellByPosition(0, 5) CellA7 = Sheet.getCellByPosition(0, 6) CellA8 = Sheet.getCellByPosition(0, 7) CellA9 = Sheet.getCellByPosition(0, 8) CellA10 = Sheet.getCellByPosition(0, 9) CellA11 = Sheet.getCellByPosition(0, 10) CellA12 = Sheet.getCellByPosition(0, 11) CellA13 = Sheet.getCellByPosition(0, 12) CellA14 = Sheet.getCellByPosition(0, 13) CellA15 = Sheet.getCellByPosition(0, 14) CellA16 = Sheet.getCellByPosition(0, 15) CellA17 = Sheet.getCellByPosition(0, 16) CellA18 = Sheet.getCellByPosition(0, 17) CellA19 = Sheet.getCellByPosition(0, 18) CellC1 = Sheet.getCellByPosition(2, 0) If (CellA1.Type = com.sun.star.table.CellContentType.EMPTY) then CellA1.Value = CellC1.Value elseif (CellA2.Type = com.sun.star.table.CellContentType.EMPTY) then CellA2.Value = CellC1.Value elseif (CellA3.Type = com.sun.star.table.CellContentType.EMPTY) then CellA3.Value = CellC1.Value elseif (CellA4.Type = com.sun.star.table.CellContentType.EMPTY) then CellA4.Value = CellC1.Value elseif (CellA5.Type = com.sun.star.table.CellContentType.EMPTY) then CellA5.Value = CellC1.Value elseif (CellA6.Type = com.sun.star.table.CellContentType.EMPTY) then CellA6.Value = CellC1.Value elseif (CellA7.Type = com.sun.star.table.CellContentType.EMPTY) then CellA7.Value = CellC1.Value elseif (CellA8.Type = com.sun.star.table.CellContentType.EMPTY) then CellA8.Value = CellC1.Value elseif (CellA9.Type = com.sun.star.table.CellContentType.EMPTY) then CellA9.Value = CellC1.Value elseif (CellA10.Type = com.sun.star.table.CellContentType.EMPTY) then CellA10.Value = CellC1.Value elseif (CellA11.Type = com.sun.star.table.CellContentType.EMPTY) then CellA11.Value = CellC1.Value elseif (CellA12.Type = com.sun.star.table.CellContentType.EMPTY) then CellA12.Value = CellC1.Value elseif (CellA13.Type = com.sun.star.table.CellContentType.EMPTY) then CellA13.Value = CellC1.Value elseif (CellA14.Type = com.sun.star.table.CellContentType.EMPTY) then CellA14.Value = CellC1.Value elseif (CellA15.Type = com.sun.star.table.CellContentType.EMPTY) then CellA15.Value = CellC1.Value elseif (CellA16.Type = com.sun.star.table.CellContentType.EMPTY) then CellA16.Value = CellC1.Value elseif (CellA17.Type = com.sun.star.table.CellContentType.EMPTY) then CellA17.Value = CellC1.Value elseif (CellA18.Type = com.sun.star.table.CellContentType.EMPTY) then CellA18.Value = CellC1.Value else MsgBox("I zadnje polje je popunjeno",16,"Error") End if end sub vladislav stevanovic wrote: > Hvala na trudu, ovo radi. medjutim, hteo sam da prosirim broj celija u koji se ubacuje > odredjena vrednost iz celije C1, pa sam osim A1 i A2 celije dodao celije sve do A19. Medjutim, program mi javlja " Greska tokom iyvrsavanja bejzika. Procedura ili > funkcija nije izvrsena." i selektovao mi je u programu red Select Case Cell(A1).Type > kao problematican. Dole su moje izmene. Boldirao sam red na koji se odnosi problem. > > > sub UbaciUPraznuCeliju > > > Dim Doc As Object > Dim Sheet As Object > Dim CellA1 As Object > Dim CellA2 As Object > Dim CellA3 As Object > Dim CellA4 As Object > Dim CellA5 As Object > Dim CellA6 As Object > Dim CellA7 As Object > Dim CellA8 As Object > Dim CellA9 As Object > Dim CellA10 As Object > Dim CellA11 As Object > Dim CellA12 As Object > Dim CellA13 As Object > Dim CellA14 As Object > Dim CellA15 As Object > Dim CellA16 As Object > Dim CellA17 As Object > Dim CellA18 As Object > Dim CellA19 As Object > Dim CellA20 As Object > Dim CellC6 As Object > > > > > Doc = ThisComponent > Sheet = Doc.Sheets(0) > > > CellA1 = Sheet.getCellByPosition(0, 0) > CellA2 = Sheet.getCellByPosition(0, 1) > CellA3 = Sheet.getCellByPosition(0, 2) > CellA4 = Sheet.getCellByPosition(0, 3) > CellA5 = Sheet.getCellByPosition(0, 4) > CellA6 = Sheet.getCellByPosition(0, 5) > CellA7 = Sheet.getCellByPosition(0, 6) > CellA8 = Sheet.getCellByPosition(0, 7) > CellA9 = Sheet.getCellByPosition(0, 8) > CellA10 = Sheet.getCellByPosition(0, 9) > CellA11 = Sheet.getCellByPosition(0, 10) > CellA12 = Sheet.getCellByPosition(0, 11) > CellA13 = Sheet.getCellByPosition(0, 12) > CellA14 = Sheet.getCellByPosition(0, 13) > CellA15 = Sheet.getCellByPosition(0, 14) > CellA16 = Sheet.getCellByPosition(0, 15) > CellC17 = Sheet.getCellByPosition(0, 16) > CellA18 = Sheet.getCellByPosition(0, 17) > CellA19 = Sheet.getCellByPosition(0, 18) > CellC9 = Sheet.getCellByPosition(2, 0) > > > Select Case Cell(A1).Type > Case com.sun.star.table.CellContentType.EMPTY > CellA1.Value = CellC1.Value > Case else > CellA2.Value = CellC1.Value > Case else > CellA3.Value = CellC1.Value > Case else > CellA4.Value = CellC1.Value > Case else > CellA5.Value = CellC1.Value > Case else > CellA6.Value = CellC1.Value > Case else > CellA7.Value = CellC1.Value > Case else > CellA8.Value = CellC1.Value > Case else > CellA9.Value = CellC1.Value > Case else > CellA10.Value = CellC1.Value > Case else > CellA12.Value = CellC1.Value > Case else > CellA13.Value = CellC1.Value > Case else > CellA14.Value = CellC1.Value > Case else > CellA15.Value = CellC1.Value > Case else > CellA16.Value = CellC1.Value > Case else > CellA17.Value = CellC1.Value > Case else > CellA18.Value = CellC1.Value > Case else > CellA19.Value = CellC1.Value > End Select > > > end sub > > --- On Sat, 9/19/09, Ljubomir Ljubojevic <office@plcomputers.net> wrote: > > > From: Ljubomir Ljubojevic <office@plcomputers.net> > Subject: Re: [sr.openoffice.org] Kako npisati uslovnost > To: users@sr.openoffice.org > Date: Saturday, September 19, 2009, 3:52 PM > > > Uf, uf, uf. Evo resenja, ali nije bas elegantno. Do sada sam radio samo sa MS Office VBA i Visual Basic okruzenjem, i tamo sam znao da dobijem ekstenzije objekata u padajucoj listi. Za OpenOffice Basic syntax-u sam morao da kopam po internetu. Ako neko zna kako se dobija padajuca lista sa svim dostupnim vrednostima, molim vas da mi to i objasnite. > > > Evo makro-a: > > sub ProveraIUnos > > Dim Doc As Object > Dim Sheet As Object > Dim CellA1 As Object > Dim CellA2 As Object > Dim CellC1 As Object > > Doc = ThisComponent > Sheet = Doc.Sheets(0) > > CellA1 = Sheet.getCellByPosition(0, 0) > CellA2 = Sheet.getCellByPosition(0, 1) > CellC1 = Sheet.getCellByPosition(2, 0) > > Select Case CellA1.Type > Case com.sun.star.table.CellContentType.EMPTY > CellA1.Value=CellC1.Value > Case else > CellA2.Value=CellC1.Value > End Select > > end sub > > Reference su na osnovu pozicije u tablici, a provereva se da li je celija A1 totalno prazna ili ne, pa se upisuje vrednost u odredjenu celiju. > > Pozdrav, > Ljubomir Ljubojevic > PL Computers > > > vladislav stevanovic wrote: >> Postovanje, >> Makro bi trebao da odradi sledece: ako je A1 celija prazna, da pastuje u nju kopirani sadrzaj iz celije C1, a ukoliko je celija A1 vec ispunjena nekim brojem da onda sadrzaj iz celije C1 pastuje u celiju A2. Kako ovu komandu napisati u obliku makroa, hteo bih da ga povezem sa dugmetom za potvrdu, kao deo jedne vece akcije.... Srdacan pozdrav, Stevanovic Vladislav >> >> >> > > > > > |
|||
|
|||
Postovanje,
G. Ljubojevicu, nekako u slicno vreme kada sam zatrazio pomoc na ovom forumu (za problem koji ste Vi uspesno resili), izlozio sam ovaj isti problem i na openoffice forumu na engleskom. Administrator je bio ljubazan pa mi je za isti problem dao svoje resenje. Ne pada mi napamet da vase resenje menjam za njegovo jer sve savrseno radi, vec sam se iznenadio drugacijim resenjem koje kao pocetnik u ovim makro vodama ne razumem, a zeleo bih nesto da naucim. Bicu slobodan da Vam dam njegovo resenje (koje usput receno iz meni nepoznatih razloga ne radi, mozda ga nisam dobro instalirao?) pa ako zelite da ga prokomentarisete. Sub PutC1 'Only works as expected if C1 is a number, Dim oSheet,Cell,V,i 'use Cell.String if it is a string. oSheet = ThisComponent.Sheets(0) 'Sheet1 Cell = oSheet.getCellRangeByName("C1") V = Cell.Value Do i = i + 1 If i = 21 then Exit Do Cell = oSheet.getCellRangeByName("A" & i) If Cell.String = "" then Cell.Value = V Exit Do EndIf Loop End Sub Srdacan pozdrav, Stevanovic Vladislav --- On Sat, 9/19/09, vladislav stevanovic <stevanovicvladislav@yahoo.com> wrote: From: vladislav stevanovic <stevanovicvladislav@yahoo.com> Subject: Re: [sr.openoffice.org] Kako npisati uslovnost To: users@sr.openoffice.org Date: Saturday, September 19, 2009, 8:45 PM U hvala! Ovo radi savrseno! Jos jednom hvala na strpljenju i vremenu! Srdacan pozdrav, Stevanovic Vladislav --- On Sat, 9/19/09, Ljubomir Ljubojevic <office@plcomputers.net> wrote: From: Ljubomir Ljubojevic <office@plcomputers.net> Subject: Re: [sr.openoffice.org] Kako npisati uslovnost To: users@sr.openoffice.org Date: Saturday, September 19, 2009, 6:48 PM Vrlo je jednostavno. Ne trebaju zagrade. Nije Cell(A1) vec CellA1. Dosta je kasno, idealno vreme za ovakve sitne previde. Preporucujem prijatan san i nastavak ujutro. Ali ovo nece moci ovako. Prvo "Case else" znaci "u svim ostalim slucajevima uradi..." sto moze da se koristi samo jednom u Case petlji inace ce odraditi upis u sva polja redom. Takodje, ono sto vi hocete je da program pronadje prvo slobodno polje i tu unese izmene, a to znaci da moraju da postoje visestruke, ugnezdene, petlje, u trenutnom slucaju jedno 18 komada. Ipak, nasao sam zadovoljavajuce resenje: Sub ProveraIUnos Dim Doc As Object Dim Sheet As Object Dim CellA1 As Object Dim CellA2 As Object Dim CellA3 As Object Dim CellA4 As Object Dim CellA5 As Object Dim CellA6 As Object Dim CellA7 As Object Dim CellA8 As Object Dim CellA9 As Object Dim CellA10 As Object Dim CellA11 As Object Dim CellA12 As Object Dim CellA13 As Object Dim CellA14 As Object Dim CellA15 As Object Dim CellA16 As Object Dim CellA17 As Object Dim CellA18 As Object Dim CellA19 As Object Dim CellA20 As Object Dim CellC1 As Object Doc = ThisComponent Sheet = Doc.Sheets(0) CellA1 = Sheet.getCellByPosition(0, 0) CellA2 = Sheet.getCellByPosition(0, 1) CellA3 = Sheet.getCellByPosition(0, 2) CellA4 = Sheet.getCellByPosition(0, 3) CellA5 = Sheet.getCellByPosition(0, 4) CellA6 = Sheet.getCellByPosition(0, 5) CellA7 = Sheet.getCellByPosition(0, 6) CellA8 = Sheet.getCellByPosition(0, 7) CellA9 = Sheet.getCellByPosition(0, 8) CellA10 = Sheet.getCellByPosition(0, 9) CellA11 = Sheet.getCellByPosition(0, 10) CellA12 = Sheet.getCellByPosition(0, 11) CellA13 = Sheet.getCellByPosition(0, 12) CellA14 = Sheet.getCellByPosition(0, 13) CellA15 = Sheet.getCellByPosition(0, 14) CellA16 = Sheet.getCellByPosition(0, 15) CellA17 = Sheet.getCellByPosition(0, 16) CellA18 = Sheet.getCellByPosition(0, 17) CellA19 = Sheet.getCellByPosition(0, 18) CellC1 = Sheet.getCellByPosition(2, 0) If (CellA1.Type = com.sun.star.table.CellContentType.EMPTY) then CellA1.Value = CellC1.Value elseif (CellA2.Type = com.sun.star.table.CellContentType.EMPTY) then CellA2.Value = CellC1.Value elseif (CellA3.Type = com.sun.star.table.CellContentType.EMPTY) then CellA3.Value = CellC1.Value elseif (CellA4.Type = com.sun.star.table.CellContentType.EMPTY) then CellA4.Value = CellC1.Value elseif (CellA5.Type = com.sun.star.table.CellContentType.EMPTY) then CellA5.Value = CellC1.Value elseif (CellA6.Type = com.sun.star.table.CellContentType.EMPTY) then CellA6.Value = CellC1.Value elseif (CellA7.Type = com.sun.star.table.CellContentType.EMPTY) then CellA7.Value = CellC1.Value elseif (CellA8.Type = com.sun.star.table.CellContentType.EMPTY) then CellA8.Value = CellC1.Value elseif (CellA9.Type = com.sun.star.table.CellContentType.EMPTY) then CellA9.Value = CellC1.Value elseif (CellA10.Type = com.sun.star.table.CellContentType.EMPTY) then CellA10.Value = CellC1.Value elseif (CellA11.Type = com.sun.star.table.CellContentType.EMPTY) then CellA11.Value = CellC1.Value elseif (CellA12.Type = com.sun.star.table.CellContentType.EMPTY) then CellA12.Value = CellC1.Value elseif (CellA13.Type = com.sun.star.table.CellContentType.EMPTY) then CellA13.Value = CellC1.Value elseif (CellA14.Type = com.sun.star.table.CellContentType.EMPTY) then CellA14.Value = CellC1.Value elseif (CellA15.Type = com.sun.star.table.CellContentType.EMPTY) then CellA15.Value = CellC1.Value elseif (CellA16.Type = com.sun.star.table.CellContentType.EMPTY) then CellA16.Value = CellC1.Value elseif (CellA17.Type = com.sun.star.table.CellContentType.EMPTY) then CellA17.Value = CellC1.Value elseif (CellA18.Type = com.sun.star.table.CellContentType.EMPTY) then CellA18.Value = CellC1.Value else MsgBox("I zadnje polje je popunjeno",16,"Error") End if end sub vladislav stevanovic wrote: > Hvala na trudu, ovo radi. medjutim, hteo sam da prosirim broj celija u koji se ubacuje > odredjena vrednost iz celije C1, pa sam osim A1 i A2 celije dodao celije sve do A19. Medjutim, program mi javlja " Greska tokom iyvrsavanja bejzika. Procedura ili funkcija nije izvrsena." i selektovao mi je u programu red Select Case Cell(A1).Type > kao problematican. Dole su moje izmene. Boldirao sam red na koji se odnosi problem. > sub UbaciUPraznuCeliju > > > Dim Doc As Object > Dim Sheet As Object > Dim CellA1 As Object > Dim CellA2 As Object > Dim CellA3 As Object > Dim CellA4 As Object > Dim CellA5 As Object > Dim CellA6 As Object > Dim CellA7 As Object > Dim CellA8 As Object > Dim CellA9 As Object > Dim CellA10 As Object > Dim CellA11 As Object > Dim CellA12 As Object > Dim CellA13 As Object > Dim CellA14 As Object > Dim CellA15 As Object > Dim CellA16 As Object > Dim CellA17 As Object > Dim CellA18 As Object > Dim CellA19 As Object > Dim CellA20 As Object > Dim CellC6 As Object > > > > > Doc = ThisComponent > Sheet = Doc.Sheets(0) > > > CellA1 = Sheet.getCellByPosition(0, 0) > CellA2 = Sheet.getCellByPosition(0, 1) > CellA3 = Sheet.getCellByPosition(0, 2) > CellA4 = Sheet.getCellByPosition(0, 3) > CellA5 = Sheet.getCellByPosition(0, 4) > CellA6 = Sheet.getCellByPosition(0, 5) > CellA7 = Sheet.getCellByPosition(0, 6) > CellA8 = Sheet.getCellByPosition(0, 7) > CellA9 = Sheet.getCellByPosition(0, 8) > CellA10 = Sheet.getCellByPosition(0, 9) > CellA11 = Sheet.getCellByPosition(0, 10) > CellA12 = Sheet.getCellByPosition(0, 11) > CellA13 = Sheet.getCellByPosition(0, 12) > CellA14 = Sheet.getCellByPosition(0, 13) > CellA15 = Sheet.getCellByPosition(0, 14) > CellA16 = Sheet.getCellByPosition(0, 15) > CellC17 = Sheet.getCellByPosition(0, 16) > CellA18 = Sheet.getCellByPosition(0, 17) > CellA19 = Sheet.getCellByPosition(0, 18) > CellC9 = Sheet.getCellByPosition(2, 0) > > > Select Case Cell(A1).Type > Case com.sun.star.table.CellContentType.EMPTY > CellA1.Value = CellC1.Value > Case else > CellA2.Value = CellC1.Value > Case else > CellA3.Value = CellC1.Value > Case else > CellA4.Value = CellC1.Value > Case else > CellA5.Value = CellC1.Value > Case else > CellA6.Value = CellC1.Value > Case else > CellA7.Value = CellC1.Value > Case else > CellA8.Value = CellC1.Value > Case else > CellA9.Value = CellC1.Value > Case else > CellA10.Value = CellC1.Value > Case else > CellA12.Value = CellC1.Value > Case else > CellA13.Value = CellC1.Value > Case else > CellA14.Value = CellC1.Value > Case else > CellA15.Value = CellC1.Value > Case else > CellA16.Value = CellC1.Value > Case else > CellA17.Value = CellC1.Value > Case else > CellA18.Value = CellC1.Value > Case else > CellA19.Value = CellC1.Value > End Select > > > end sub > > --- On Sat, 9/19/09, Ljubomir Ljubojevic <office@plcomputers.net> wrote: > > > From: Ljubomir Ljubojevic <office@plcomputers.net> > Subject: Re: [sr.openoffice.org] Kako npisati uslovnost > To: users@sr.openoffice.org > Date: Saturday, September 19, 2009, 3:52 PM > > > Uf, uf, uf. Evo resenja, ali nije bas elegantno. Do sada sam radio samo sa MS Office VBA i Visual Basic okruzenjem, i tamo sam znao da dobijem ekstenzije objekata u padajucoj listi. Za OpenOffice Basic syntax-u sam morao da kopam po internetu. Ako neko zna kako se dobija padajuca lista sa svim dostupnim vrednostima, molim vas da mi to i objasnite. > > > Evo makro-a: > > sub ProveraIUnos > > Dim Doc As Object > Dim Sheet As Object > Dim CellA1 As Object > Dim CellA2 As Object > Dim CellC1 As Object > > Doc = ThisComponent > Sheet = Doc.Sheets(0) > > CellA1 = Sheet.getCellByPosition(0, 0) > CellA2 = Sheet.getCellByPosition(0, 1) > CellC1 = Sheet.getCellByPosition(2, 0) > > Select Case CellA1.Type > Case com.sun.star.table.CellContentType.EMPTY > CellA1.Value=CellC1.Value > Case else > CellA2.Value=CellC1.Value > End Select > > end sub > > Reference su na osnovu pozicije u tablici, a provereva se da li je celija A1 totalno prazna ili ne, pa se upisuje vrednost u odredjenu celiju. > > Pozdrav, > Ljubomir Ljubojevic > PL Computers > > > vladislav stevanovic wrote: >> Postovanje, >> Makro bi trebao da odradi sledece: ako je A1 celija prazna, da pastuje u nju kopirani sadrzaj iz celije C1, a ukoliko je celija A1 vec ispunjena nekim brojem da onda sadrzaj iz celije C1 pastuje u celiju A2. Kako ovu komandu napisati u obliku makroa, hteo bih da ga povezem sa dugmetom za potvrdu, kao deo jedne vece akcije.... Srdacan pozdrav, Stevanovic Vladislav >> >> >> > > > > > |
|||
|
|||
Hvala na ukazanom poverenju, ali ako naidjete na elegantnije resenje od
mog, slobodno ga koristite, ja nisam sujetna osoba. Ovo je bio apsolutno prvi problem koje sam pokusao da resim u OOBasic-u, tako da i pored mog znanja Visual Basica i ostalilh jezika, ovo je, u ovom trenutku, bio pravi poduhvat za mene. Naravno i izazov, i proprema za neke projekte koje zelim uskoro da odradim sa MySQL-om i OpenOffice-om. Sto se tice resenja kolege sa engleskog foruma, ono radi, i mnogo je jednostavnije i elegantnije od moga, ali ako sam dobro uspeo da utvrdim ima jednu manu. Mislim, nisam siguran, da je problem sto kada se napravi novi dokumenat vrednost celije A1 bude prazno (null) a ne "". Ili je to, ili je problem sto meni taj makro (a izgleda i ostali) nece da rade kada ih postavim da startuju sa klika na dumege. Kada postavim ikonicu na neku od alatki ispod menija, radi bez problema. Posle prckanja po makro-u, moja verzija je na kraju bila ova: Sub Provera 'Only works as expected if C1 is a number, Dim oSheet,Cell,V,i 'use Cell.String if it is a string. oSheet = ThisComponent.Sheets(0) 'Sheet1 Cell = oSheet.getCellRangeByName("C1") V = Cell.Value Do i = i + 1 If i = 21 then Exit Do Cell = oSheet.getCellRangeByName("A" & i) If (Cell.String = "") or (Cell.Value is null) then REM If Cell.String = "" then Cell.Value = V Exit Do EndIf Loop End Sub I naravno, ovo ce da radi samo ako je C1 broj (i formatirano kao broj?), bar tako pise u objasnjenju (linija 2) Pozdrav, Ljubomir Ljubojevic PL Computers vladislav stevanovic wrote: > Postovanje, > > G. Ljubojevicu, nekako u slicno vreme kada sam zatrazio pomoc na > ovom forumu (za problem koji ste Vi uspesno resili), izlozio sam ovaj isti problem i na > openoffice forumu na engleskom. > Administrator je bio ljubazan pa mi je za isti problem dao svoje resenje. Ne pada mi > napamet da vase resenje menjam za njegovo jer sve savrseno radi, vec sam se iznenadio > drugacijim resenjem koje kao pocetnik u ovim makro vodama ne razumem, a zeleo bih nesto da naucim. Bicu slobodan da Vam dam njegovo resenje (koje usput receno iz meni > nepoznatih razloga ne radi, mozda ga nisam dobro instalirao?) pa ako zelite da ga prokomentarisete. > > Sub PutC1 'Only works as expected if C1 is a number, > Dim oSheet,Cell,V,i 'use Cell.String if it is a string. > oSheet = ThisComponent.Sheets(0) 'Sheet1 > Cell = oSheet.getCellRangeByName("C1") > V = Cell.Value > Do > i = i + 1 > If i = 21 then Exit Do > Cell = oSheet.getCellRangeByName("A" & i) > If Cell.String = "" then > Cell.Value = V > Exit Do > EndIf > Loop > End Sub > > Srdacan pozdrav, > Stevanovic Vladislav > > --- On Sat, 9/19/09, vladislav stevanovic <stevanovicvladislav@yahoo.com> wrote: > > From: vladislav stevanovic <stevanovicvladislav@yahoo.com> > Subject: Re: [sr.openoffice.org] Kako npisati uslovnost > To: users@sr.openoffice.org > Date: Saturday, September 19, 2009, 8:45 PM > > U hvala! Ovo radi savrseno! > > Jos jednom hvala na strpljenju i vremenu! > > Srdacan pozdrav, > Stevanovic Vladislav |
|||
|
|||
" Kada postavim ikonicu na neku od alatki ispod menija, radi bez problema."
Kako se takva ikonica pravi? Do sada sam takve stvari resavao iskljucivo preko dugmeta. I da li postoji neka net adresa, free knjiga za download, gde se objasnjava ili postupno uci kao se pisu makroi, sintaksa, znacenje odredjenih reci u sintaksi... Na primer, u ovom primeru je slovo "i". Da li je to neka vrsta promenljive, i da li se ona, da bi je program prepoznao, uvek oznacava iskljucivo sa slovom "i"? Pozdrav , Stevanovic Valdislav --- On Mon, 9/21/09, Ljubomir Ljubojevic <office@plcomputers.net> wrote: From: Ljubomir Ljubojevic <office@plcomputers.net> Subject: Re: [sr.openoffice.org] Kako npisati uslovnost To: users@sr.openoffice.org Date: Monday, September 21, 2009, 12:58 PM Hvala na ukazanom poverenju, ali ako naidjete na elegantnije resenje od mog, slobodno ga koristite, ja nisam sujetna osoba. Ovo je bio apsolutno prvi problem koje sam pokusao da resim u OOBasic-u, tako da i pored mog znanja Visual Basica i ostalilh jezika, ovo je, u ovom trenutku, bio pravi poduhvat za mene. Naravno i izazov, i proprema za neke projekte koje zelim uskoro da odradim sa MySQL-om i OpenOffice-om. Sto se tice resenja kolege sa engleskog foruma, ono radi, i mnogo je jednostavnije i elegantnije od moga, ali ako sam dobro uspeo da utvrdim ima jednu manu. Mislim, nisam siguran, da je problem sto kada se napravi novi dokumenat vrednost celije A1 bude prazno (null) a ne "". Ili je to, ili je problem sto meni taj makro (a izgleda i ostali) nece da rade kada ih postavim da startuju sa klika na dumege. Kada postavim ikonicu na neku od alatki ispod menija, radi bez problema. Posle prckanja po makro-u, moja verzija je na kraju bila ova: Sub Provera 'Only works as expected if C1 is a number, Dim oSheet,Cell,V,i 'use Cell.String if it is a string. oSheet = ThisComponent.Sheets(0) 'Sheet1 Cell = oSheet.getCellRangeByName("C1") V = Cell.Value Do i = i + 1 If i = 21 then Exit Do Cell = oSheet.getCellRangeByName("A" & i) If (Cell.String = "") or (Cell.Value is null) then REM If Cell.String = "" then Cell.Value = V Exit Do EndIf Loop End Sub I naravno, ovo ce da radi samo ako je C1 broj (i formatirano kao broj?), bar tako pise u objasnjenju (linija 2) Pozdrav, Ljubomir Ljubojevic PL Computers vladislav stevanovic wrote: > Postovanje, > > G. Ljubojevicu, nekako u slicno vreme kada sam zatrazio pomoc na ovom forumu (za problem koji ste Vi uspesno resili), izlozio sam ovaj isti problem i na > openoffice forumu na engleskom. > Administrator je bio ljubazan pa mi je za isti problem dao svoje resenje. Ne pada mi napamet da vase resenje menjam za njegovo jer sve savrseno radi, vec sam se iznenadio drugacijim resenjem koje kao pocetnik u ovim makro vodama ne razumem, a zeleo bih nesto da naucim. Bicu slobodan da Vam dam njegovo resenje (koje usput receno iz meni > nepoznatih razloga ne radi, mozda ga nisam dobro instalirao?) pa ako zelite da ga prokomentarisete. > > Sub PutC1 'Only works as expected if C1 is a number, > Dim oSheet,Cell,V,i 'use Cell.String if it is a string. > oSheet = ThisComponent.Sheets(0) 'Sheet1 > Cell = oSheet.getCellRangeByName("C1") > V = Cell.Value > Do > i = i + 1 > If i = 21 then Exit Do > Cell = oSheet.getCellRangeByName("A" & i) > If Cell.String = "" then > Cell.Value = V > Exit Do > EndIf Loop > End Sub > > Srdacan pozdrav, > Stevanovic Vladislav > > --- On Sat, 9/19/09, vladislav stevanovic <stevanovicvladislav@yahoo.com> wrote: > > From: vladislav stevanovic <stevanovicvladislav@yahoo.com> > Subject: Re: [sr.openoffice.org] Kako npisati uslovnost > To: users@sr.openoffice.org > Date: Saturday, September 19, 2009, 8:45 PM > > U hvala! Ovo radi savrseno! > > Jos jednom hvala na strpljenju i vremenu! > > Srdacan pozdrav, > Stevanovic Vladislav |
|||
|
|||
Malo sam njusnuo po google-u i evo sta je ispalo iz magicnog sesira:
Prvo mozda da odete ovde: http://www.pitonyak.org/oo.php (pregledajte CELU stranicu, dole ima dosta linkova, a ima i polu knjiga sa primerima: http://www.pitonyak.org/AndrewMacro.pdf Takodje je tu i "StarOffice 8 Programming Guide for BASIC": http://dlc.sun.com/pdf/819-0439/819-0439.pdf (StarOffice je komercijalna verzija OpenOffice-a,i treba da je 100% kompatibilna. Jos linkova: Wiki za OOBasic, Guide: http://wiki.services.openoffice.org/wiki...e/Language http://api.openoffice.org/DevelopersGuid...Guide.html http://documentation.openoffice.org/HOW_...macros.sxw http://api.openoffice.org/basic/man/tuto...torial.pdf http://www.openoffice.org/nonav/issues/s...icXref.sxw http://www.ooomacros.org/ Takodje ima i kjiga da se kupi: http://www.hentzenwerke.com/catalog/oome.htm Moja "Ikonica" je ustvari "alatka" ili "tool" iz palete alatki (toolbar). "U meniju Prikazpaleta alatkiprilagodi" (View oolbarscustomize? - zadnja stavka) se izabere na koju paletu stavljate alatku/ikonicu/precicu pa klikne na dugme Dodaj (Add). Iz liste izaberete OO Makro-i (na dnu), izaberete zeljeni makro, itd.. Obicno se napravi posebna paleta samo za svoje ikonice i snimi u sopstveni dokument? Ovaj deo sam zaboravio kako ide, ja sam u MS Officu uglavnom morao da radim sa Access-om. Sto se tice syntakse, ona je u principu ista kao i kod ostalih Basic-a, cak bih rekao da je OOBasic klon "Visual Basic for Applications", tako da svaka domaca knjiga o "Visual Basic za Aplikacije" moze da pomogne oko koncepta programiranja u OOBasic-u. U ovom primeru, "i" je varijabla tipa "integer" i ona je proizvoljnog naziva (bilo koje slovo ili rec) a samo slovo "i" se uglavnom koristi kao skracenica od reci "increment" ili "iteration" posto u petlji ona sluzi da se njenim povecavanjem kontrolise broj iteracija i izabere izlazak iz petlje u zeljenom trenutku. Znaci preporuka za kraj, za vas kao prakticno totalnog pocetrnika. Nabaviti knjigu na srpskom (za pocetnike, Dummy-je i sl.) iz Visaul Basic-a, pa kada se to sazvace (bar prvih 100-ak stranica), preci na elektronske dokumente/knjige na engleskom. vladislav stevanovic wrote: > " Kada postavim ikonicu na neku od alatki ispod menija, radi bez problema." > Kako se takva ikonica pravi? Do sada sam takve stvari resavao iskljucivo preko > dugmeta. > I da li postoji neka net adresa, free knjiga za download, gde se objasnjava ili postupno uci > kao se pisu makroi, sintaksa, znacenje odredjenih reci u sintaksi... Na primer, u ovom > primeru je slovo "i". Da li je to neka vrsta promenljive, i da li se ona, da bi je program > prepoznao, uvek oznacava iskljucivo sa slovom "i"? > > Pozdrav , > Stevanovic Valdislav > > > --- On Mon, 9/21/09, Ljubomir Ljubojevic <office@plcomputers.net> wrote: > > > From: Ljubomir Ljubojevic <office@plcomputers.net> > Subject: Re: [sr.openoffice.org] Kako npisati uslovnost > To: users@sr.openoffice.org > Date: Monday, September 21, 2009, 12:58 PM > > > Hvala na ukazanom poverenju, ali ako naidjete na elegantnije resenje od mog, slobodno ga koristite, ja nisam sujetna osoba. > > Ovo je bio apsolutno prvi problem koje sam pokusao da resim u OOBasic-u, tako da i pored mog znanja Visual Basica i ostalilh jezika, ovo je, u ovom trenutku, bio pravi poduhvat za mene. Naravno i izazov, i proprema za neke projekte koje zelim uskoro da odradim sa MySQL-om i OpenOffice-om. > > Sto se tice resenja kolege sa engleskog foruma, ono radi, i mnogo je jednostavnije i elegantnije od moga, ali ako sam dobro uspeo da utvrdim ima jednu manu. Mislim, nisam siguran, da je problem sto kada se napravi novi dokumenat vrednost celije A1 bude prazno (null) a ne "". > > Ili je to, ili je problem sto meni taj makro (a izgleda i ostali) nece da rade kada ih postavim da startuju sa klika na dumege. Kada postavim ikonicu na neku od alatki ispod menija, radi bez problema. > > Posle prckanja po makro-u, moja verzija je na kraju bila ova: > > Sub Provera > 'Only works as expected if C1 is a number, > Dim oSheet,Cell,V,i 'use Cell.String if it is a string. > oSheet = ThisComponent.Sheets(0) 'Sheet1 > Cell = oSheet.getCellRangeByName("C1") > V = Cell.Value > Do > i = i + 1 > If i = 21 then Exit Do > Cell = oSheet.getCellRangeByName("A" & i) > If (Cell.String = "") or (Cell.Value is null) then > REM If Cell.String = "" then > Cell.Value = V > Exit Do > EndIf > Loop > End Sub > > I naravno, ovo ce da radi samo ako je C1 broj (i formatirano kao broj?), bar tako pise u objasnjenju (linija 2) > > Pozdrav, > Ljubomir Ljubojevic > PL Computers > > > vladislav stevanovic wrote: >> Postovanje, >> >> G. Ljubojevicu, nekako u slicno vreme kada sam zatrazio pomoc na ovom forumu (za problem koji ste Vi uspesno resili), izlozio sam ovaj isti problem i na >> openoffice forumu na engleskom. >> Administrator je bio ljubazan pa mi je za isti problem dao svoje resenje. Ne pada mi napamet da vase resenje menjam za njegovo jer sve savrseno radi, vec sam se iznenadio drugacijim resenjem koje kao pocetnik u ovim makro vodama ne razumem, a zeleo bih nesto da naucim. Bicu slobodan da Vam dam njegovo resenje (koje usput receno iz meni >> nepoznatih razloga ne radi, mozda ga nisam dobro instalirao?) pa ako zelite da ga prokomentarisete. >> >> Sub PutC1 'Only works as expected if C1 is a number, >> Dim oSheet,Cell,V,i 'use Cell.String if it is a string. >> oSheet = ThisComponent.Sheets(0) 'Sheet1 >> Cell = oSheet.getCellRangeByName("C1") >> V = Cell.Value >> Do >> i = i + 1 >> If i = 21 then Exit Do >> Cell = oSheet.getCellRangeByName("A" & i) >> If Cell.String = "" then >> Cell.Value = V >> Exit Do >> EndIf Loop >> End Sub >> >> Srdacan pozdrav, >> Stevanovic Vladislav >> >> --- On Sat, 9/19/09, vladislav stevanovic <stevanovicvladislav@yahoo.com> wrote: >> >> From: vladislav stevanovic <stevanovicvladislav@yahoo.com> >> Subject: Re: [sr.openoffice.org] Kako npisati uslovnost >> To: users@sr.openoffice.org >> Date: Saturday, September 19, 2009, 8:45 PM >> >> U hvala! Ovo radi savrseno! >> >> Jos jednom hvala na strpljenju i vremenu! >> >> Srdacan pozdrav, >> Stevanovic Vladislav > > > > |
|||