indsætte data fra kildeark og returnere til arbejdsark

Brugerhjælp og support til makroer i LibreOffice Basic

Moderators: Lodahl, LarsBrandi

Post Reply
soren
Posts: 18
Joined: Fri Aug 12, 2011 16:24

indsætte data fra kildeark og returnere til arbejdsark

Post by soren » Thu Jul 14, 2016 13:01

Jeg har brug for at lave en makro der kan kopiere celler i eet skjult ark og indsætte dem i et andet, aktivt ark.
Det hele skal foregå i een arbejdsgang.
Jeg har foreløbig optaget en makro der kopierer cellerne i eet ark. Og så har jeg optaget en anden makro der indsætter cellerne der hvor min cursor er placeret.
Min arbejdsgang pt er følgende:

Jeg arbejder i eet bestemt ark (der findes 14 forskellige arbejdsark, som alle har brug for samme makrofunktion) og har brug for at indsætte et bestemt celleområde fra et andet ark ("kilde")
1) I arbejdsarket: aktiver makro "kopier" herved ender jeg i selve kilde-arket.
2) I kildearket: tryk tilbage til arbejdsarket
3) i arbejdsarket: vælg celle og aktiver makro "indsæt".

Det er for mange arbejdsgange.
Jeg forestiller mig
1) en makro der finder arbejdsarkets reference og gemmer den til senere brug
2) makroen kopierer herefter de angivne celler
3) og vender tilbage til arbejdsarket via den gemte reference
4) herefter indsættes de kopierede celler i arbejdsarket

Alt dette må¨være muligt, men som sagt kan jeg ikke finde ud af at lave referencen korrekt.

Er der nogen, der har en løsning eller kan give et tip til, hvordan det kan løses?

mvh
Søren

Jens S
Posts: 1091
Joined: Sun Mar 25, 2007 21:42

Re: indsætte data fra kildeark og returnere til arbejdsark

Post by Jens S » Sat Jul 16, 2016 8:48

Den indbyggede makrooptager er ikke meget anvendelig. Du kan skrive din egen makro på grundlag af Andrew Pitonyak vejledning https://www.dropbox.com/s/rvteletxa07zv ... o.odt?dl=0 Her er en vejledning under pkt 5.23 som du skal tilpasse dit formål.

mvh
Jens

User avatar
Lodahl
Posts: 1957
Joined: Wed Sep 14, 2005 7:27
Location: Storkøbenhavn
Contact:

Re: indsætte data fra kildeark og returnere til arbejdsark

Post by Lodahl » Thu Nov 03, 2016 19:47

Er det altid det samme celle-område der skal kopieres?
Skal området indsættes på markørens position, eller et bestemt sted (samme sted hver gang) i arbejdsarket?
Med venlig hilsen

Leif Lodahl
Blog: https://libreofficedk.blogspot.dk
LibreOffice: http://da.libreoffice.org

User avatar
Lodahl
Posts: 1957
Joined: Wed Sep 14, 2005 7:27
Location: Storkøbenhavn
Contact:

Re: indsætte data fra kildeark og returnere til arbejdsark

Post by Lodahl » Thu Nov 03, 2016 21:09

Denne makro anvender klippe-klistre, hvilket desværre kun virker, så længe kilde-arket ikke er skjult. Kan du leve med det?

REM ***** BASIC *****

Sub Main
oDoc=thisComponent
Selection=oDoc.CurrentSelection.getRangeAddress
oSheets = oDoc.Sheets

SourceArea = oDoc.Sheets.getByName("Data").getCellRangeByName("A1:B8")

oDoc.CurrentController.Select(SourceArea)

document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

dispatcher.executeDispatch(document, ".uno:Copy", "", 1, Array())

oSheet = oDoc.getSheets().getByIndex(Selection.Sheet)
oCell = oSheet.GetCellbyPosition( Selection.StartColumn, Selection.StartRow )
oDoc.CurrentController.Select(oCell)

dispatcher.executeDispatch(document, ".uno:Paste", "", 0, Array())

End Sub
Med venlig hilsen

Leif Lodahl
Blog: https://libreofficedk.blogspot.dk
LibreOffice: http://da.libreoffice.org

Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest