[Gelöst] Basic-->benutzerdefiniertes Zahlenformat

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

kannenklaus
*****
Beiträge: 319
Registriert: Mi, 14.12.2005 08:08
Wohnort: freising - oder dort, wo das bier herkommt

[Gelöst] Basic-->benutzerdefiniertes Zahlenformat

Beitrag 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
Zuletzt geändert von kannenklaus am Sa, 28.11.2015 20:18, insgesamt 1-mal geändert.
Karolus
********
Beiträge: 7533
Registriert: Mo, 02.01.2006 19:48

Re: Basic-->benutzerdefiniertes Zahlenformat

Beitrag 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.
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
kannenklaus
*****
Beiträge: 319
Registriert: Mi, 14.12.2005 08:08
Wohnort: freising - oder dort, wo das bier herkommt

Re: Basic-->benutzerdefiniertes Zahlenformat

Beitrag 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
Karolus
********
Beiträge: 7533
Registriert: Mo, 02.01.2006 19:48

Re: Basic-->benutzerdefiniertes Zahlenformat

Beitrag von Karolus »

Hallo

Nein, stumpf abgeschrieben hast du --

KEY = "#,# ""h"""
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
kannenklaus
*****
Beiträge: 319
Registriert: Mi, 14.12.2005 08:08
Wohnort: freising - oder dort, wo das bier herkommt

Re: Basic-->benutzerdefiniertes Zahlenformat

Beitrag von kannenklaus »

KEY = "#,# ""h"""
Dann kommen nur Zahlen und kein "h"
Karolus
********
Beiträge: 7533
Registriert: Mo, 02.01.2006 19:48

Re: Basic-->benutzerdefiniertes Zahlenformat

Beitrag 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.
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Basic-->benutzerdefiniertes Zahlenformat

Beitrag 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
kannenklaus
*****
Beiträge: 319
Registriert: Mi, 14.12.2005 08:08
Wohnort: freising - oder dort, wo das bier herkommt

Re: Basic-->benutzerdefiniertes Zahlenformat

Beitrag von kannenklaus »

Hallo Stephan, danke jetzt läuft es :D
Antworten