Calc: NumberFormat

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Calc: NumberFormat

Re: Calc: NumberFormat

von komma4 » Fr, 30.09.2011 09:57

Im Beispiel die Anweisung .querykey, liefert eine ID >=0, wenn sie vorhanden ist.

Re: Calc: NumberFormat

von mike6 » Fr, 30.09.2011 09:20

Hallo,

vielen Dank. Funktioniert einwandfrei.

Kann ich bereits vergebene ID's auch auslesen?
Wie lautet dazu der Code?

Re: Calc: NumberFormat

von komma4 » Fr, 30.09.2011 08:29

Code: Alles auswählen

Sub addNumberFormat
sFormat = "0,00 ""€/m²"" "
Dim aLocale As New com.sun.star.lang.Locale
oFormats = _
 ThisComponent.NumberFormats
neuesFormatID = _
 oFormats.queryKey( sFormat, aLocale, True )
' Schluesselwert nicht gefunden: hinzufuegen Format
' format not found - key not returned: add format
If neuesFormatID < 0 Then
 neuesFormatID  = _
 oFormats.addNew( sFormat, aLocale )
 msgbox "neue ID: " & neuesFormatID
End If
getestet mit OOo3.2.1/Linux

Eine neu angezeigte ID kannst Du dann in Deinem Code einfügen und den zum Setzen verwenden.

Hilft das weiter?

Re: Calc: NumberFormat

von mike6 » Fr, 30.09.2011 07:46

Hallo,

wie von Dir vermutet, läuft das Makro nur auf dem PC, wo auch das NumberFormat eingerichtet wurde.

Betriebssystem: Winwows / Linux
Speicherformat : ods
OOo-Version 3.3.2

Code: Alles auswählen

Für ein Codebeispiel musst Du bis nach meiner Mittagspause warten:
Ich warte gerne.

Re: Calc: NumberFormat

von komma4 » Fr, 30.09.2011 07:32

mike6 hat geschrieben:Folgende Code läuft nicht auf allen PC's.
Wo läuft er? Wo nicht?

Standardfragen:

Welche OOo-Version?
Welches Betriebssystem?
Welches Speicherformat (*.ods?*.xls?)


Meine Vermutung:
Das NumberFormat wurde nicht in allen Computern -zumindest nicht unter der gleichen ID- eingerichtet.
Die ID kannst Du bei der Einrichtung nicht vergeben. Sie wird intern festgelegt.
Mit Code kannst Du abfragen, ob ein bestimmtes NumberFormat bereits vorhanden ist und dessen ID ermitteln, bevor Du das Format auf die Zelle/den Zellbereich anwendest.

Für ein Codebeispiel musst Du bis nach meiner Mittagspause warten: meine Familie hat Hunger. Und das ist in diesem Land hier nicht zu unterschätzen ;)
Oder sieh' in den Code meiner Extension DateTime2 - dort verwende ich so ein Schnippsel.

Calc: NumberFormat

von mike6 » Fr, 30.09.2011 07:12

Hallo,

ich suche ein Makro für die Formatierung 0,00 €/m².
Wie bekomme ich das hin?

Folgende Code läuft nicht auf allen PC's.

Code: Alles auswählen

sub euro_pro_qm
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 = 108

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


Moderation,4: Betreff angepasst

Nach oben