Ciao Guido, Il giovedì 8 novembre 2007 12:53:54 Guido (email.it) ha scritto: > In una macro valorizzo una cella con la seguente formula > > =CONTA.VALORI($E$11:$E$1500)-CONTA.SE($E$11:$E$1500;"=0") > > Mi piacerebbe scriverla in inglese in modo tale che il Calc funzioni > indipendentemente dalla lingua.
Ma funziona già indipendentemente dalla lingua, non serve tradurre manualmente le formule, anzi, se scrivi le formule in inglese in un Calc localizzato in italiano ti ritroverai con un sacco di #NOME? In realtà, se tu apri il content.xml di un documento Calc in Italiano, ti accorgerai che al suo interno non c'è traccia della rappresentazione italiana delle funzioni. Ad esempio, nel caso della tua formula, quello che viene salvato nel file è qualcosa del genere: <table:table-cell table:formula="oooc:=COUNTA([.$E$11:.$E$1500])-COUNTIF([. $E$11:.$E$1500];"=0")" office:value-type="float" office:value="0"> Ogni volta che il documento viene aperto, a seconda della localizzazione in uso, le funzioni dentro le celle vengono tradotte "al volo" nella lingua appropriata. > Qualche suggerimenti per la traduzione corretta del comando?? > (non vorrei installarmi OOo in inglese!!) Proprio in virtù di quando detto finora, l'Inglese è solo una localizzazione come un'altra. Quello che tu in realtà stavi cercando è la rappresentazione interna delle formule, ovvero la loro rappresentazione non localizzata e può essere utile conoscerla, anche se non nel tuo caso specifico. Tale rappresentazione interna viene detta "programmatic name" e il fatto che sia in inglese è solo un dettaglio di implementazione (tra l'altro, non è sempre vero che la rappresentazione en_US di una formula corrisponde al "programmatic name") Se vuoi vedere le tue formule rappresentate con i loro "programmatic names" puoi fare così: Supponendo che la tua formula sia nella cella A1 della prima tabella, puoi usare questa macro: --------------------------- Sub PrintProgrammaticName oCell = ThisComponent.Sheets(0).getCellByPosition(0,0) Print oCell.FormulaLocal() Print oCell.Formula() End Sub --------------------------- Usando l'API potresti ricavare anche il programmatic name di tutti gli argomenti. > Esiste un posto a cui fare riferimento per la traduzione dei vari > comandi (conta.valori, ....) > (in ML non ho trovato nulla) Come hai visto non è difficile ricavare la versione non localizzata di una funzione, comunque tempo fa abbiamo discusso dello stesso argomento nel NG it-alt.comp.software.openoffice: http://tinyurl.com/37h29j Troverai anche una macro che ho proposto per generare una tabella di corrispondenza a cui fare riferimento. NB: Lo dico in generale: nel testare le macro proposte si raccomanda la massima cautela, salvare e chiudere tutti documenti che contengono dati importanti, chiudere tutti i programmi non strettamente necessari e non dare per scontato che tutto vada liscio. Declino qualunque responsabilità. ciao Paolo M --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
