Opgelost Omzetten van een formule (Calc) naar zijn waarde

Opgelost Omzetten van een formule (Calc) naar zijn waarde

Berichtdoor LeoDeWeerdt » za okt 09, 2010 1:31 pm

Hieronder een macro, opgenomen met de macrorecorder, die in de range ("E23:G23") de WAARDE
van de formules in range ("H23:J23") invult.
Nu had ik graag hetzelfde effect echter zonder gebruik te maken van het clipboard. Dit vooral om een snellere
doorloop van de macro te bekomen en ook om flikkeren op het scherm te vermijden.
Al dagen op het internet gezocht maar nog geen bevredigende oplossing gevonden.
Wie kan en wil mij helpen?
Dank bij voorbaat

sub KopyWaarden
dim document as object
dim dispatcher as object
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$H$23:$J$23"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args3()) 'gaat naar het bronbereik
dispatcher.executeDispatch(document, ".uno:Copyrange", "", 0, Array()) 'kopieert naar Clipboard
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "ToPoint"
args2(0).Value = "$E$23:$G$23"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args5()) 'gaat naar het doelbereik
dim args3(5) as new com.sun.star.beans.PropertyValue
args3(0).Name = "Flags"
args3(0).Value = "V"
dispatcher.executeDispatch(document, ".uno:InsertContents", "", 0, args6()) ' vult de WAARDE van de formule, in het clipboard, in
end sub
Laatst bijgewerkt door LeoDeWeerdt op za okt 09, 2010 8:20 pm, in totaal 2 keer bewerkt.
Leo
Het is voor mij een grote troost dat er geen domme vragen zijn.
LeoDeWeerdt
 
Berichten: 41
Geregistreerd: wo jan 06, 2010 4:26 pm

Re: Omzetten van een formule (Calc) naar zijn waarde

Berichtdoor RPG » za okt 09, 2010 3:24 pm

Hallo

Ik denk dat je hier het antwoord hebt.
http://www.oooforum.org/forum/viewtopic.phtml?t=107192

Bij dit soort zaken is het vaak beter naar een goede site te gaan dan zoeken met google of een ander iets.

Ik denk dat dit soort vragen bijna elke week beantwoord worden. Ik ben gewoon gaan bladeren en kwam het na drie minuten tegen.

Ik heb de code volledig te danken aan gemelde link. Het is iets aan gepast en lijkt te werken op de manier zoals ik de vraag begrijp.

Romke

Code: Selecteer alles   UitklappenInklappen
dim oSheet
   oSheet=thiscomponent.currentcontroller.activesheet
   oSourceRange = oSheet.getCellRangeByName("A1:A2")
   oDataArray = oSourceRange.getDataArray
   oDestRange = oSheet.getCellRangeByName("A1:A2")
   oDestRange.setDataArray(oDataArray)
end sub
LibreOffice 6.2.5.2 op openSUSE Leap 15.1
RPG
 
Berichten: 4025
Geregistreerd: wo apr 15, 2009 1:01 am
Woonplaats: Apeldoorn, Nederland

Re: Omzetten van een formule (Calc) naar zijn waarde

Berichtdoor LeoDeWeerdt » za okt 09, 2010 8:16 pm

RPG,
Hartelijk dank voor uw snelle reactie en voornamelijk voor de link naar het openOffice.org Forum.
Daar de macro moet lopen zonder dat het betreffende sheet op het scherm verschijnt heb ik een kleine aanpassing moeten doorvoeren.
Het DestSheet is enkel nodig indien dat verschilt van het SourceSheet.
Het resultaat ziet U hieronder

sub KopyWaarden
Dim oDoc, oSheet,oSourceRange, oDestRange, oDataArray
oDoc = ThisComponent
oSheet = oDoc.Sheets.getByName("Sheet7")
oSourceRange = oSheet.getCellRangeByName("H23:J23")
oDataArray = oSourceRange.getDataArray
'DestSheet = oDoc.Sheets.getByName("Sheet8")
oDestRange = oSheet.getCellRangeByName("E23:G23")
oDestRange.setDataArray(oDataArray)
end sub
Leo
Het is voor mij een grote troost dat er geen domme vragen zijn.
LeoDeWeerdt
 
Berichten: 41
Geregistreerd: wo jan 06, 2010 4:26 pm


Keer terug naar Macro's

Wie is er online

Gebruikers op dit forum: Geen geregistreerde gebruikers. en 0 gasten

cron