Cell.Numberformat - wie korrekt einsetzen (Makro)

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: Cell.Numberformat - wie korrekt einsetzen (Makro)

von mecki_45 » Sa, 28.08.2004 12:33

Hallo Stephan,

hab´s zu Fuß erledigt.
Sprich "Spalte markiert" und anschließend von oben nach unten die Zellinhalte in String gewandelt, meinen Index vorangesetzt und anschließend zurückgeschrieben - nicht schön,aber selten.


Grüßle
Alex

von Stephan » Mo, 23.08.2004 20:34

Hast Du eine Idee, wie ich das anstellen muss?
Nein habe ich nicht. Ich habe mal sowas hier im Forum diskutiert, da ging es aber um eines der vordefinierten Formate - ich habe die Formatierung mit dem Makrorekorder aufgezeichnet und mir dann die Zahl notiert die dem Format zugeordnet war. Da es aber bei Dir um ein benutzerdefiniertes Format geht kann es dafür wohl keine kodierte Zahl geben, denke ich. Ein anderer Weg ist mir bisher nicht bekannt.

Stephan

von mecki_45 » Mo, 23.08.2004 17:40

Hallo Stephan,
ein Beispiel hab ich nicht - dachte es geht so wie ich es eingesetzt habe, tut es aber nicht.
Hast Du eine Idee, wie ich das anstellen muss?

Grüßle
Alex

von Stephan » So, 22.08.2004 20:55

oMyCellStyle.NumberFormat = "Dia_"+"000#"
ich dachte bisher .NumberFormat sei ein kodierter numerischer Ausdruck, der das Format beschreibt... oder kann man das als String übergeben? Hast Du ein Beispiel dafür?

Stephan

Cell.Numberformat - wie korrekt einsetzen (Makro)

von mecki_45 » So, 22.08.2004 09:38

Hallo zusammen,
ich möchte in einer Zellvorlage neben verschiedenen Zeichenattributen auch das Zahlenformat entsprechend anpassen. Hierzu gibt es einen Schalter "Cell.NumberFormat" - nur bekomme ich diesen nicht korrekt ans laufen.
Mein Wunsch wäre folgender:
Dia_xxxx =Y wobei xxxx für eine laufende Nr.steht.

Wie stelle ich das in einem Makro korrekt an?
Hier mein bisheriges Makro als Beispiel.

Sub Zellvorlage_DIA_erstellen
DIM oDoc As Object
DIM oMyCellStyle As Object
DIM CText As Object
DIM CContent As Object

'>>> Abfrage, ob Seitenvorlage vorhanden
'>>> Ist die Vorlage vorhanden, wird diese Routine beendet
On Error Goto Fehler
Stardesktop.CurrentComponent.StyleFamilies.getByName("CellStyles").getByName("Dia")
Msgbox "Zellenvorlage vorhanden"
exit sub

'>>> Vorlage ist nicht vorhanden und wird angelegt
Fehler:
Msgbox "Zellenvorlage ist nicht vorhanden und wird angelegt"

oDoc = StarDesktop.CurrentComponent
'neue Zellformatvorlage erstellen und Formatierungen festlegen
oMyCellStyle = oDoc.createInstance( "com.sun.star.style.CellStyle" )
oDoc.getStyleFamilies().getByName( "CellStyles" ).insertByName( "Dia", oMyCellStyle )

'>>> Schriftart setzen - *ARIAL*
oMyCellStyle.CharFontName = "Comic Sans MS"
'>>> Schriftgröße setzen - *10*
oMyCellStyle.CharHeight = 10
'>>> Schriftfarbe setzen - Hellblau
oMyCellStyle.CharColor = 255
'>>> Schriftattribut setzen - *FETT*
oMyCellStyle.CharWeight = com.sun.star.awt.FontWeight.BOLD
'>>> Horizontale und vertikale Ausrichtung - *ZENTRIERT*
oMyCellStyle.HoriJustify = com.sun.star.table.CellHoriJustify.CENTER
oMyCellStyle.VertJustify = com.sun.star.table.CellVertJustify.CENTER

'>>> Zahlenformat, angepaßt auf Dia - *Dia_xxxx*
oMyCellStyle.NumberFormat = "Dia_"+"000#"

'>>> Zell-Linie setzen - *UNTEN, GRAU*
linie = CreateUnoStruct("com.sun.star.table.BorderLine")
With linie
.Color = RGB( 160, 160, 160 )
.InnerLineWidth = 0
'löschen mit .OuterLineWidth = 0 möglich
.OuterLineWidth = 15
.LineDistance = 0
End With
' oMyCellStyle.TopBorder = linie
oMyCellStyle.BottomBorder = linie
' oMyCellStyle.LeftBorder = linie
' oMyCellStyle.RightBorder = linie
end Sub

Sub Zellvorlage_verwenden
oDoc = StarDesktop.CurrentComponent
oBereich = oDoc.getCurrentSelection()
ThisComponent.CurrentController.Select(oBereich)
With ThisComponent.CurrentSelection
.CellStyle = "Dia"
End With
End sub

Hoffe das hilft euch weiter

Grüßle
Alex

Nach oben