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
indsætte data fra kildeark og returnere til arbejdsark
Moderators: Lodahl, LarsBrandi
Re: indsætte data fra kildeark og returnere til arbejdsark
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
mvh
Jens
Re: indsætte data fra kildeark og returnere til arbejdsark
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?
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
Leif Lodahl
Blog: https://libreofficedk.blogspot.dk
LibreOffice: http://da.libreoffice.org
Re: indsætte data fra kildeark og returnere til arbejdsark
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
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
Leif Lodahl
Blog: https://libreofficedk.blogspot.dk
LibreOffice: http://da.libreoffice.org