Author Topic: Scrittura su cella di funzione calcolata con macro (libreOffice)  (Read 4951 times)

0 Members and 1 Guest are viewing this topic.

Offline minis

  • Novizio del forum
  • *
  • Posts: 30
  • Karma: 3
Scrittura su cella di funzione calcolata con macro (libreOffice)
« on: 01 October , 2012, 09:54:57 AM »
Salve da internet ho trovato questa macro per l'automazione della ricerca valore di destinazione, ma stampa a video il valore ricercato mentre io vorrei che fosse scritto in una specifica cella, modificando il valore che č giā presente in quella cella (es. in cella P63), non conoscendo nulla di programmazione LibreOffice basic, volevo avere indicazione su come modificare la macro per ottenere il risultato richiesto inserisco di seguito la macro

sub MP
dim resultfound as new com.sun.star.sheet.GoalResult '(divergence,result structure)
dim formula_address as new com.sun.star.table.CellAddress '(sheet,column, Row structure)
dim variable_address as new com.sun.star.table.CellAddress
dim targetresult as string 'goal value sought as STRING
oDoc=thiscomponent
'set location of formula to be evaluated to give goal value
formula_address.sheet = 1 'index values - zero based
formula_address.Column = 1
formula_address.Row=47
' set location of variable to be changed
variable_address.sheet = 0
variable_address.Column = 15
variable_address.Row=62
' set goal value
targetresult = "0"
' run goalseek
resultfound = oDoc.seekgoal(formula_address,variable_address,targetresult)
' do something with result
msgbox resultfound.result

end sub


fa vedere a video ma vorrei che scrivesse il risultato nella cella P63 foglio 1

chiedo a voi che avete maggiore conoscenza di me di liguaggi di programmazione come risolvere il problema.

Grazie anticipate a tutti

Offline Gilean

  • Administrator
  • Bisnonno Veterano
  • *****
  • Posts: 3292
  • Karma: 202
Re:Scrittura su cella di funzione calcolata con macro (libreOffice)
« Reply #1 on: 01 October , 2012, 14:34:26 PM »
Se la della é ha una riga x e colonna y e vuoi che scriva il valore z scriverai

Cell(x,y) = z
Il calcolo č come la pelle delle @@, lo tiri dove vuoi tu.
Esempio di programmazione a Loop:
L'enunciato che segue č falso
L'enunciato precedente č vero.

Nonostante la consapevolezza dei rischi che si corrono dopo aver visto le prestazioni da 3° dan

Offline minis

  • Novizio del forum
  • *
  • Posts: 30
  • Karma: 3
Re:Scrittura su cella di funzione calcolata con macro (libreOffice)
« Reply #2 on: 01 October , 2012, 14:48:49 PM »
ho provato ad inserire il comando cell (x,y) come da te indicato ma non funziona mi dice procedura non definita, come detto non sono affatto pratico di programmazione se magari si potrebbe inserire le righe da scrivere nella macro sopra rappresentata sarebbe meglio

il risultato viene visualizzato con il comando msbox resultfoud.result  e vorrei che questo risultato invece di esser visibile solo a video venga scritto scritto nella cella P63 del primo foglio

grazie di nuovo

Offline Gilean

  • Administrator
  • Bisnonno Veterano
  • *****
  • Posts: 3292
  • Karma: 202
Re:Scrittura su cella di funzione calcolata con macro (libreOffice)
« Reply #3 on: 02 October , 2012, 08:11:18 AM »
infatti ho sbagliato io, devi usare il comando cells, non cell

http://excelvba.altervista.org/Corso/OggettiExc2.html
Il calcolo č come la pelle delle @@, lo tiri dove vuoi tu.
Esempio di programmazione a Loop:
L'enunciato che segue č falso
L'enunciato precedente č vero.

Nonostante la consapevolezza dei rischi che si corrono dopo aver visto le prestazioni da 3° dan

Offline minis

  • Novizio del forum
  • *
  • Posts: 30
  • Karma: 3
Re:Scrittura su cella di funzione calcolata con macro (libreOffice)
« Reply #4 on: 02 October , 2012, 09:42:30 AM »
grazie ancora ma non sono riuscito ad implementare la funzione continua restituirmi il comando funzione non definita, non so se č un problema di libreoffice o del comando perchč non compatibile.

se hai un attimo di tempo potresti provare a modificare e far girare la macro indicata (serve naturalmente una funzione di cui ricercare il valore)

grazie di nuovo

Offline minis

  • Novizio del forum
  • *
  • Posts: 30
  • Karma: 3
Re:Scrittura su cella di funzione calcolata con macro (libreOffice)
« Reply #5 on: 02 October , 2012, 10:35:59 AM »
risolto i comandi sono differenti invio l'intero listato della macro per libreoffice

sub MP
   dim resultfound as new  com.sun.star.sheet.GoalResult '(divergence,result structure)
   dim formula_address as new  com.sun.star.table.CellAddress  '(sheet,column, Row structure)
   dim variable_address as new  com.sun.star.table.CellAddress
   dim targetresult as string  'goal value sought as STRING
   oDoc=thiscomponent
   'set location of formula to be evaluated to give goal value
   formula_address.sheet = 1  'index values - zero based
   formula_address.Column = 1
   formula_address.Row=47
   ' set location of variable to be changed
   variable_address.sheet = 0
   variable_address.Column = 15
   variable_address.Row=62
   ' set goal value
   targetresult = "0"
   ' run goalseek
   resultfound = oDoc.seekgoal(formula_address,variable_address,targetresult)
   ' copia nella cella
        oDoc.Sheets(0).getCellRangeByName("P63").FormulaLocal= resultfound.result
       ' per avere messaggio a video
        msgbox resultfound.result
end sub

naturalmente vanno modificati i valori del foglio e delle righe e colonne relative alle celle


grazie comunque
« Last Edit: 02 October , 2012, 11:54:20 AM by minis »

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24