You are viewing a plain text version of this content. The canonical link for it is here.
Posted to utenti-it@openoffice.apache.org by argasoft <ar...@argasoft.it> on 2012/10/19 20:29:51 UTC

[utenti] Nuovi fogli con macro.

Ciao.

Dato che non ho trovato una funzione che lo 
faccia, presumo ci voglia una macro :-[.

Vorrei che mi si creasse in automatico un nuovo 
foglio con nome numerico ricavato da questa formula:
=SE(C47<>"";SE(CONTA.SE($D$10:D46;"="&D47)=0;MAX($E$10:E46)+1;CERCA.VERT(D47;$D$10:E46;2;0));"")
cioé:
- in caso venga eseguita MAX(), il nuovo foglio 
avrebbe come nome il numero calcolato con MAX(), 
dato che uso FOGLIO() all'interno di alcune formule.

Chiaramente mi serve anche una spiegazione di 
come/dove far partire la macro automaticamente, etc.

Grazie.

Arnaldo

Argasoft by Arnaldo Gaudenzi
audio - luci - software
Strada Provinciale per Porto Azzurro, 44
57039  RIO NELL'ELBA LI
p. i. 01133090496 - c.f. GDN RLD 58H12 Z133L
tel 3358419520 - fax 0565 939262
http://www.argasoft.it  

Re: [utenti] Nuovi fogli con macro.

Posted by argasoft <ar...@argasoft.it>.
At 10:56 20.10.2012, you wrote:
>Il 19/10/2012 20:29, argasoft ha scritto:
>[...]
>>Vorrei che mi si creasse in automatico un nuovo foglio con nome numerico
>>ricavato da questa formula:
>>=SE(C47<>"";SE(CONTA.SE($D$10:D46;"="&D47)=0;MAX($E$10:E46)+1;CERCA.VERT(D47;$D$10:E46;2;0));"")
>>
>>cioé:
>>- in caso venga eseguita MAX(), il nuovo foglio avrebbe come nome il
>>numero calcolato con MAX(), dato che uso FOGLIO() all'interno di alcune
>>formule.
>>
>>Chiaramente mi serve anche una spiegazione di come/dove far partire la
>>macro automaticamente, etc.
>
>Per creare una nuova tabella via macro puoi usare qualcosa del genere:
>
>ThisComponent.Sheets.insertNewByName("nuova tabella", 1)
...snip...
>Per lanciare la macro puoi creare un pulsante in 
>una barra degli strumenti personalizzata oppure 
>puoi usare una combinazione di tasti o puoi 
>inserire un pulsante direttamente nel documento, 
>oppure puoi assegnare la macro ad un evento.
>
>saluti
>Paolo M
...snip...

Grazie, Paolo.

Francamente mi sarebbe piaciuto qualcosa che 
creasse in automatico qualora si applicasse la 
MAX() della funzione, a meno di non fare una 
macro che controlli l'up-to-date dei fogli al 
salvataggio/chiusura del file, tenendo presente 
che posso inserire anche più di una nuova riga 
con valori nelle celle della colonna "A".
In A1 (per seguire il Tuo esempio) io ho un 
valore calcolato del tipo 1.1/16.5 etc. Il nome 
del foglio sarebbe, quindi, "16", cioé tutti i 
caratteri prima di "." in A1. La Tua macro 
presumo che in sNome metterebbe, p. es. 16.5.
Attualmente vedo le cifre prima del punto e vado 
sul foglio che ha il nome uguale o ne creo uno 
nuovo editando anche i parametri delle varie 
formule di quello nuovo, se è il caso.

Grazie nuovamente.

Arnaldo

Argasoft by Arnaldo Gaudenzi
audio - luci - software
Strada Provinciale per Porto Azzurro, 44
57039  RIO NELL'ELBA LI
p. i. 01133090496 - c.f. GDN RLD 58H12 Z133L
tel 3358419520 - fax 0565 939262
http://www.argasoft.it  

Re: [utenti] Nuovi fogli con macro.

Posted by Paolo Mantovani <p_...@libero.it>.
Il 19/10/2012 20:29, argasoft ha scritto:
[...]
> Vorrei che mi si creasse in automatico un nuovo foglio con nome numerico
> ricavato da questa formula:
> =SE(C47<>"";SE(CONTA.SE($D$10:D46;"="&D47)=0;MAX($E$10:E46)+1;CERCA.VERT(D47;$D$10:E46;2;0));"")
>
> cioé:
> - in caso venga eseguita MAX(), il nuovo foglio avrebbe come nome il
> numero calcolato con MAX(), dato che uso FOGLIO() all'interno di alcune
> formule.
>
> Chiaramente mi serve anche una spiegazione di come/dove far partire la
> macro automaticamente, etc.

Per creare una nuova tabella via macro puoi usare qualcosa del genere:

ThisComponent.Sheets.insertNewByName("nuova tabella", 1)

dove:
   "nuova tabella" sarà il nome della tabella creata
   0 è la posizione in cui la tabella viene inserita.

la posizione 0 è la prima a sx.
Mettendo 1 la tabella viene inserita dopo la prima tabella a sx, 2 dopo 
la seconda e così via.
Se vuoi inserire una tabella in ultima posizione puoi fare così:

  iPos = ThisComponent.Sheets.Count
  ThisComponent.Sheets.insertNewByName("ultima tabella", iPos)


Per quanto riguarda il nome, supponendo che la tua formula si trovi 
nella cella A1 del foglio "MioFoglio" puoi fare così:

  sNome =  ThisComponent.Sheets.MioFoglio.getCellRangeByName("A1").String
  iPos = ThisComponent.Sheets.Count
  ThisComponent.Sheets.insertNewByName(sNome, iPos)

Per lanciare la macro puoi creare un pulsante in una barra degli 
strumenti personalizzata oppure puoi usare una combinazione di tasti o 
puoi inserire un pulsante direttamente nel documento, oppure puoi 
assegnare la macro ad un evento.

saluti
Paolo M





	

---------------------------------------------------------------------
Per cancellarsi: ooo-utenti-it-unsubscribe@incubator.apache.org
Per informazioni: http://www.openoffice.org/it/
Per avviare una nuova discussione: ooo-utenti-it@incubator.apache.org
Archivi: http://mail-archives.apache.org/mod_mbox/incubator-ooo-utenti-it