Odgovori 
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
Citiraj ovu poruku u odgovoru

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


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:

Kod:
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
>
>
>       
Citiraj ovu poruku u odgovoru

 
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
Citiraj ovu poruku u odgovoru

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
>>
>>
>>       
>
>
>
>
>       
Citiraj ovu poruku u odgovoru

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
>
>
>
Citiraj ovu poruku u odgovoru

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
>>
>>
>>
>
>
>
>
>
Citiraj ovu poruku u odgovoru

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
>>
>>
>>       
>
>
>
>
>       




     
Citiraj ovu poruku u odgovoru

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
Citiraj ovu poruku u odgovoru

" 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
Citiraj ovu poruku u odgovoru

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
>
>
>
>
Citiraj ovu poruku u odgovoru
Odgovori 




Kontakt | otvorenidokument.com | Povratak na vrh | Povratak na sadržaj | RSS