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: [email protected]
Per informazioni: http://www.openoffice.org/it/
Per avviare una nuova discussione: [email protected]
Archivi: http://mail-archives.apache.org/mod_mbox/incubator-ooo-utenti-it

Rispondere a