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)