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
> 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/
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
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
Grazie mille, Vitriol e Luigi/Gigi :)