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];&quot;=0&quot;)" 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]

Rispondere a