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

#1 9. 3. 2011 10:09:39

richardhold
Člen
Registrace: 23. 2. 2011
Příspěvků: 10

Vyhladanie prazdnej bunky a zapis do riadku

Prosim o radu
mam makro ktore mi z listu zadaj kopiruje udaje do tabulky na liste firma (jedna sa udaje nazov firmy, adresa, ico, ...) ale neviem si pomoct aby vyhladalo makro prazdnu bunku napriklad v prvom stlpci a zapisalo zadane hodnoty z listu zadaj do prveho volneho riadku. Nemam az take znalosti v programovani tak prosim ak mate niekto nieco take vytvorene zverejnite makro.

Moje makro:

sub kopirovat

    Dim oSheets 
    Dim oSheet
    Dim oCell
    dim i as integer
    dim x as integer

    for i=1 to 6
    oSheets = ThisComponent.Sheets 
    oSheet = oSheets.getByName("Zadaj")
    CellValue = oSheet.getCellbyPosition(1,i).String
        oSheet = oSheets.getByName("firma")
    oSheet.getCellbyPosition(i,0).setString(CellValue)
    next i
end sub

Dakujem

Offline

#2 9. 3. 2011 11:42:58

richardhold
Člen
Registrace: 23. 2. 2011
Příspěvků: 10

Re: Vyhladanie prazdnej bunky a zapis do riadku

uz som to vyriesil neskorsie vlozim subor aj s makrami. zatial ta to stranka by mohla pomoct aj ostatnym http://ooo.e-hanus.cz/

Editoval richardhold (9. 3. 2011 11:44:43)

Offline

#3 9. 3. 2011 17:44:54

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

Re: Vyhladanie prazdnej bunky a zapis do riadku

Ten váš kód není moc optimální:
oSheets = ThisComponent.Sheets dejte mimo/před cyklus FOR
stejně tak oSheet = oSheets.getByName("Zadaj") a oSheet = oSheets.getByName("firma") s tím že je upravíte na
oSheetZadaj = oSheets.getByName("Zadaj")
oSheetFirma = oSheets.getByName("firma")
a v cyklu pak budete volat jen
oSheetFirma.getCellbyPosition(i,0).setString(oSheetZadaj.getCellbyPosition(1,i).String)

oSheets = ThisComponent.Sheets
oSheetZadaj = oSheets.getByName("Zadaj")
oSheetFirma = oSheets.getByName("firma")
for i=1 to 6
  oSheetFirma.getCellbyPosition(0,i).setString(oSheetZadaj.getCellbyPosition(i,1).String)
next i

Jinak to makro, co chcete, by mohlo vypadat takto:
http://ooo.e-hanus.cz/makro-uloz-vstup-jinam.01.ods

Sub presun_data

    oSheets = ThisComponent.Sheets
    oSheetZadaj = oSheets.getByName("Zadaj")
    oSheetFirma = oSheets.getByName("Firma")

    radek_zapis = 0
    While oSheetFirma.getCellbyPosition(0,radek_zapis).String <> ""
        radek_zapis = radek_zapis + 1
    Wend

    For i=1 To 6
      oSheetFirma.getCellbyPosition(i-1,radek_zapis).setString(oSheetZadaj.getCellbyPosition(1,i).String)
    Next i

End Sub

Je hodně primitivní, dalo by se samozřejmě vylepšit, např.:
* efektivněji zjistit řádek, kam se má vkládat
* kopírovat pomocí Copy - Paste Special

Editoval hanus (9. 3. 2011 20:30:01)

Offline

Zápatí