Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Nuovo formato definito da utente su Calc

24 views
Skip to first unread message

Gabers

unread,
Feb 1, 2011, 1:06:14 PM2/1/11
to
Ciao, oggi ho provato a definire un nuovo formato personalizzato su
una cella di Calc:
#.##0,00;[RED]-#.##0,00;-

In pratica, ho voluto emulare quello che su Excel si ottiene premendo
il pulsante "000" (tre zeri), ossia un formato del tutto simile a
quello Valuta, ma senza il simbolo della valuta davanti. Quando c'è
zero, viene messo un semplice trattino.
Dopodiche' ho registrato una macro che applica questo formato alla
cella selezionata, e ho abbinato la macro ad un pulsante,
opportunamente rinominato "000". Quindi per l'utente (appena migrato a
OOo) la procedura è la stessa di prima.

Il problema nasce dal fatto che questo formato personalizzato non
viene mantenuto anche su altri file di Calc, ma solo su quello in cui
l'ho creato.
Il codice della macro, peraltro, non mi e' molto di aiuto, in quanto
si fa riferimento ad un valore di NumberFormatValue di cui non conosco
il significato (sembrerebbe riferito alla valuta), e tra l'altro non
ho trovato un elenco dei valori possibili.

Cosa mi consigliate di fare?

Il codice è il seguente:
sub NumeroStandard
rem
----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem
----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem
----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "NumberFormatValue"
args1(0).Value = 103

dispatcher.executeDispatch(document, ".uno:NumberFormatValue", "", 0,
args1())
end sub


Grazie in anticipo.

Alberto

VITRIOL

unread,
Feb 1, 2011, 1:20:18 PM2/1/11
to
Il 01/02/2011 19.06, Gabers ha scritto:

> Cosa mi consigliate di fare?

Di salvare come modello un documento vuoto nel quale č definito il
formato personalizzato, e poi impostarlo come modello predefinito.
Le indicazioni su come fare le trovi qui:

https://groups.google.com/group/it-alt.comp.software.openoffice/msg/b099c3af358713c5?hl=it

--
news:it-alt.comp.software.openoffice : Il newsgroup dedicato a
OpenOffice.org, la suite open source di applicazioni per ufficio.
Scarica "OpenOffice.org 3: Soluzioni a raccolta", molto piů di semplici
FAQ! http://it.openoffice.org/doc/manuali/

gigi

unread,
Feb 1, 2011, 3:40:51 PM2/1/11
to
Gabers ha pensato forte :

> Ciao, oggi ho provato a definire un nuovo formato personalizzato su
> una cella di Calc:
> #.##0,00;[RED]-#.##0,00;-
>
> In pratica, ho voluto emulare quello che su Excel si ottiene premendo
> il pulsante "000" (tre zeri), ossia un formato del tutto simile a
> quello Valuta, ma senza il simbolo della valuta davanti. Quando c'ᅵ

> zero, viene messo un semplice trattino.
> Dopodiche' ho registrato una macro che applica questo formato alla
> cella selezionata, e ho abbinato la macro ad un pulsante,
> opportunamente rinominato "000". Quindi per l'utente (appena migrato a
> OOo) la procedura ᅵ la stessa di prima.

>
> Il problema nasce dal fatto che questo formato personalizzato non
> viene mantenuto anche su altri file di Calc, ma solo su quello in cui
> l'ho creato.
> Il codice della macro, peraltro, non mi e' molto di aiuto, in quanto
> si fa riferimento ad un valore di NumberFormatValue di cui non conosco
> il significato (sembrerebbe riferito alla valuta), e tra l'altro non
> ho trovato un elenco dei valori possibili.
>
> Cosa mi consigliate di fare?
>
> Il codice ᅵ il seguente:

> sub NumeroStandard
> rem
> ----------------------------------------------------------------------
> rem define variables
> dim document as object
> dim dispatcher as object
> rem
> ----------------------------------------------------------------------
> rem get access to the document
> document = ThisComponent.CurrentController.Frame
> dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
>
> rem
> ----------------------------------------------------------------------
> dim args1(0) as new com.sun.star.beans.PropertyValue
> args1(0).Name = "NumberFormatValue"
> args1(0).Value = 103
>
> dispatcher.executeDispatch(document, ".uno:NumberFormatValue", "", 0,
> args1())
> end sub
>
>
> Grazie in anticipo.
>
> Alberto

sul pc del lavoro dovrei avere una macro in cui inserisci nel codice
starbasic il formato e ti calcola il relativo NumberFormatValue. Io la
utilizzo per avere i formati con "cm" o "mm" nelle toolbar e funzionana
a meraviglia almeno da OOo 3.0. Ultimamente sono un po' incasinato, ma
se riesco domani la posto.
Saluti
Luigi


Luigi

unread,
Feb 2, 2011, 6:19:10 AM2/2/11
to
Dopo dura riflessione, gigi ha scritto :

> Gabers ha pensato forte :
>> Ciao, oggi ho provato a definire un nuovo formato personalizzato su
>> una cella di Calc:
>> #.##0,00;[RED]-#.##0,00;-
>>
>> In pratica, ho voluto emulare quello che su Excel si ottiene premendo
>> il pulsante "000" (tre zeri), ossia un formato del tutto simile a
>> quello Valuta, ma senza il simbolo della valuta davanti. Quando c'è

>> zero, viene messo un semplice trattino.
>> Dopodiche' ho registrato una macro che applica questo formato alla
>> cella selezionata, e ho abbinato la macro ad un pulsante,
>> opportunamente rinominato "000". Quindi per l'utente (appena migrato a
>> OOo) la procedura è la stessa di prima.

>>
>> Il problema nasce dal fatto che questo formato personalizzato non
>> viene mantenuto anche su altri file di Calc, ma solo su quello in cui
>> l'ho creato.
>> Il codice della macro, peraltro, non mi e' molto di aiuto, in quanto
>> si fa riferimento ad un valore di NumberFormatValue di cui non conosco
>> il significato (sembrerebbe riferito alla valuta), e tra l'altro non
>> ho trovato un elenco dei valori possibili.
>>
>> Cosa mi consigliate di fare?
>>
>> Il codice è il seguente:

eccomi, ho avuto solo ora un poco di tempo, ti faccio il copia-incolla
della mia macro, l'unica cosa da fare è inserire al posto giusto il tuo
codice formato. Fammi sapere, ma penso che questa sia la soluzione che
volevi.
Saluti
Luigi

sub formatom
dim dispatcher as object
Dim Doc As Object
Dim NumberFormats As Object
Dim NumberFormatString As String
Dim NumberFormatId As Long
Dim LocalSettings As New com.sun.star.lang.Locale
Doc = StarDesktop.CurrentComponent
LocalSettings.Language = "it"
LocalSettings.Country = "it"
NumberFormats = Doc.NumberFormats
NumberFormatString = "[$m-410] #.##0,00;[RED]-[$m-410] #.##0,00" rem
inserire il codice testuale x il formato
rem aggiungere ;"" dopo il formato per non vedere gli zeri ?????????
NumberFormatId = NumberFormats.queryKey(NumberFormatString,
LocalSettings, True)
If NumberFormatId = -1 Then
NumberFormatId = NumberFormats.addNew(NumberFormatString,
LocalSettings)
End If


rem
----------------------------------------------------------------------
rem get access to the document

doc = ThisComponent.CurrentController.Frame


dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem
----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "NumberFormatValue"

args1(0).Value = numberformatid
dispatcher.executeDispatch(doc, ".uno:NumberFormatValue", "", 0,
args1())
end sub


Gabers

unread,
Feb 3, 2011, 2:30:14 AM2/3/11
to

Grazie mille, Vitriol e Luigi/Gigi :)

0 new messages