Datum auf Englisch in Calc

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: Datum auf Englisch in Calc

von Stephan » Sa, 04.02.2006 13:38

Hallo Thomas,

Ich glaube, das funktioniert nicht.

Ja, Du hast Recht - peinlich ... :oops:

(Ich hatte mir nur das "Ausprobierverfahren" gemerkt und mußte jetzt erstmal nach einem Code suchen.)
Machen wir Dieses:

Code: Alles auswählen

Sub Datum_formatieren()
Dim Landesspezifisch As New com.sun.star.lang.Locale
oZelle = ThisComponent.Sheets(0).getCellByPosition(4,6)
Landesspezifisch.Language = "en"
Landesspezifisch.Country = "us"
FormatCode = "D. MMMM YYYY"
oNummerformat = ThisComponent.NumberFormats
FormatNummer = oNummerformat.queryKey(FormatCode, Landesspezifisch, True)
If FormatNummer = -1 Then
   FormatNummer = oNummerformat.addNew(FormatCode, Landesspezifisch)
End If
oZelle.NumberFormat = FormatNummer
End Sub
Der Controller speichert wohl diesen Code irgendwo als "benutzerdefinierten" Code- unter einer beliebigen Nummer.
Die "5081" ist meiner Meinung nach das 'Äquivalent' zu Deiner "81" in der verlinkten Beispieldatei, ich meine der 81er-Teil ist meiner Meinung nach immer die 'Codierung' für:
D. MMMM YYYY
in der jeweiligen Sprache, also wenn deutsch dann für:
T. MMMM JJJJ
Der Zusatz vor der "81" (also hier 50) ist die 'eingestellte' Sprache im obenstehenden Sinne also englisch(USA) (en + us) und ist der Zusatz nicht da ist die Einstellung "Standard". Nach kurzem Test würde ich sagen das gilt so generell, also auch für andere Codierungen, das heißt die 'Formatzahl' setzt sich zusammen aus der landesspezifischen Zahl plus die 'Formatzahl' von "Standard" (gemäß Deiner Beispieldatei).

Problem ist allerdings das ich bisher keine Möglichkeit kenne wie ich beispielsweise aus en + us auf 50 schließen kann ohne es auszuprobieren. Komisch ist auch das ich zwar das en und us bei entsprechenden Einstellungen in Absatzvorlagen (CharLocal) mittels .Language bzw. .Country auslesen konnte, das Gleiche mir aber bei Zahlenformaten in Zellen nicht gelingt (IDL-Referenz unter: .../com/sun/star/lang/Locale.html ist meiner Meinung nach der 'Einstieg' dafür)



Gruß
Stephan

von Toxitom » Sa, 04.02.2006 11:44

Hey Stefan,
ergibt: 5081
dann kannst Du es künftig zuweisen:
Ich glaube, das funktioniert nicht. Das geht nur, wenn du im aktuellen Dokument diesen Fromatcode einmalig "erstellt" hast - dann imgleichen Dokument. Der Controller speichert wohl diesen Code irgendwo als "benutzerdefinierten" Code- unter einer beliebigen Nummer.
Öffne mal ein neues Dokument und weise den Code einer Zelle zu - das Ergebnis ist nicht vorhersehbar.

Gruss
Thomas

von Stephan » Fr, 03.02.2006 22:45

ich möchte aber
16. January 2006

gibt es hierfür auch eine Möglichkeit?


Stelle es per Hand ein und lies es aus mit:

Code: Alles auswählen

Sub Main
x = ThisComponent.Sheets(0).getCellByPosition(4,6).NumberFormat
 msgbox x
End Sub
ergibt: 5081

dann kannst Du es künftig zuweisen:

Code: Alles auswählen

Sub Main
ThisComponent.Sheets(0).getCellByPosition(4,6).NumberFormat  = 5081
End Sub


Gruß
Stephan

Danke

von fichte.buche » Fr, 03.02.2006 21:29

Hallo Thomas,

Vielen Dank für die Antwort, jetzt weiß ich wenistens, daß ich nicht mehr weitersuchen muß.
Es bleibt mir also nicht übrig wie wieder einmal drum-rum zu programmieren.
Aber zuerst werd ich mal versuchen meine Kollegen zu überzeugen, daß ein Datumsformat mit nur Zahlen hoffentlich ausreicht. Das wär schon x-mal einfacher.

Nochmals Danke

Gruß
Georg

von Toxitom » Fr, 03.02.2006 11:49

Hey Georg,
ch möchte aber
16. January 2006

gibt es hierfür auch eine Möglichkeit?
Nein. Das wird über das Gebietsschema des Betriebssystems gesteuert. Dann müsstest du das umstellen - mit allen Konsequenzen.

Geht es dir nur um das Anzeigen eines solchen Datums, dann löse das Datum in Basic auf, und setze es als String wieder zusammen, dann kannst du einen Array mit englischen Monatsnamen definieren und entsprechend auswählen.
Jetzt lässt sich aber in Calc nicht mehr damit rechnen :-(

Gruss
Thomas

Wie gehts auf Englisch

von fichte.buche » Fr, 03.02.2006 09:24

Hallo Thomas,

Vielen Dank für die rasche Antwort.
Leider wird mit diesen Indexnummern der Monat immer in Deutsch angezeigt.

z.B mit 76 -> 16. Jänner 2006

ich möchte aber
16. January 2006

gibt es hierfür auch eine Möglichkeit?

Viele Grüße
Georg

von Toxitom » Fr, 03.02.2006 09:03

Hey fichte.buche,

der Foramtcode für YYYY-MM-DD wäre 84.

Ich habe eine Übersicht und ein Makro, das dierdiese Formatcods ausliest und anzeigt. Du findest es -> hier.

Viel Spass

Thomas

Datum auf Englisch in Calc

von fichte.buche » Fr, 03.02.2006 08:28

Ich hab ein Makro mit dem ich eine Calc-Tabelle mit Infos vollschreibe. Dies funktioniert in Deutsch wunderbar, wenn ich aber für gewisse Kunden auf Englisch das ganze haben will scheitere ich immer an der Umstellung des Datums.

In Deutsch fomatier ich die Zelle mit

Code: Alles auswählen

Sheet.getCellByPosition(4,6).NumberFormat = 76
Ich hab jetzt mit Makro aufzeichnen herauszufinden welche Nummer ich brauche im auf Englisch umzustellen und dort bekomm ich die Nummer 5081.
Wenn ich das Makro aber dann laufen lasse steht das Datum immer noch in der Form T. MMMM JJJJ in DEUTSCH da.
Wie bekomm ich das Datum auf Englisch hin?

DANKE

Nach oben