Seite 1 von 1

[Gelöst] Basic-->benutzerdefiniertes Zahlenformat

Verfasst: Mo, 23.11.2015 14:02
von kannenklaus
Hallo

kann ich mit Basic auch ein benutzerdefiniertes Zahlenformat erstellen? Ich möchte, dass im Zellbereich B2:B2000 die Zahlen so "4,5 h" erscheinen. Der Code geht nicht.

Code: Alles auswählen

calcDoc=thisComponent
oRange=calcDoc.sheets(0).getCellRangeByName("b2:b2000")
oRange.NumberFormat = "#,# h"
Danke für Eure Hilfe

Re: Basic-->benutzerdefiniertes Zahlenformat

Verfasst: Mo, 23.11.2015 14:54
von Karolus
Hallo

Code: Alles auswählen

from com.sun.star.uno import RuntimeException


def set_format(*_): 
    doc = XSCRIPTCONTEXT.getDocument()
    KEY = '#,# "h"'
    numformats = doc.NumberFormats
    locale = doc.CharLocale
    cellrange = doc.Sheets.getByIndex(0).getCelRangeByName('B2:B2000')
    try:
        numformats.addNew(KEY, locale )
    except RuntimeException:
        pass
    cellrange.NumberFormat = numformats.queryKey( KEY ,locale, False)
 
Achtung python - entsprechend benutzen oder nach basic übersetzen.

Re: Basic-->benutzerdefiniertes Zahlenformat

Verfasst: Mo, 23.11.2015 15:24
von kannenklaus
Hallo Karolus,

habe das umgesetzt leider ohne Wirkung

Code: Alles auswählen

Sub BenutzerFormat
calcDoc=thisComponent
	KEY = "#,# h"
    numformats = calcDoc.NumberFormats
    locale = calcDoc.CharLocale
    oRange = calcDoc.Sheets.getByIndex(0).getCellRangeByName("B2:B2000")
    myFormat = numformats.queryKey( KEY ,locale, False)
    oRange.NumberFormat = myFormat
end sub

Re: Basic-->benutzerdefiniertes Zahlenformat

Verfasst: Mo, 23.11.2015 16:01
von Karolus
Hallo

Nein, stumpf abgeschrieben hast du --

KEY = "#,# ""h"""

Re: Basic-->benutzerdefiniertes Zahlenformat

Verfasst: Mo, 23.11.2015 16:18
von kannenklaus
KEY = "#,# ""h"""
Dann kommen nur Zahlen und kein "h"

Re: Basic-->benutzerdefiniertes Zahlenformat

Verfasst: Mo, 23.11.2015 17:02
von Karolus
kannenklaus hat geschrieben:
KEY = "#,# ""h"""
Dann kommen nur Zahlen und kein "h"
Das ist nicht mehr mein Problem, im der ersten Antwort steht eine getestete und funktionierende Lösung.

Re: Basic-->benutzerdefiniertes Zahlenformat

Verfasst: Mo, 23.11.2015 18:45
von Stephan
habe das umgesetzt leider ohne Wirkung
das Format das Du verwenden willst ist kein Format das in den innerhalb von OO schon vorhandenen Formaten existiert, es muss also erst zu diesen Formaten hinzugefügt werden bevor es angewendet werden kann

Code: Alles auswählen

Sub BenutzerFormat
	calcDoc=thisComponent
   	KEY = "#,# ""x"""
    numformats = calcDoc.NumberFormats
    locale = calcDoc.CharLocale
    oRange = calcDoc.Sheets.getByIndex(0).getCellRangeByName("B2:B2000")
    myFormat = numformats.queryKey( KEY ,locale, True)
    If myFormat = -1 Then
    	myFormat = numformats.addNew(KEY, locale)
    End If
    oRange.NumberFormat = myFormat
end Sub

Gruß
Stephan

Re: Basic-->benutzerdefiniertes Zahlenformat

Verfasst: Di, 24.11.2015 08:36
von kannenklaus
Hallo Stephan, danke jetzt läuft es :D