Seite 1 von 1

Zellfarbe mit Basic setzen, red(),green(), blue()

Verfasst: So, 09.10.2011 14:10
von Reinardo
Hallo Wissende,

den nachstehenden Code habe ich mir zusammengebastelt. Ich habe Excel-Vba Kenntnisse aber Starbasic ist mir sehr fremd.

In den beiden oberen auskommentierten Codezeilen im Code benutze ich red() usw.. Ergebnis ist immer 0, egal wie ich die Zelle färbe oder deren Schrift.
Was mache ich da falsch um das zu erreichen was ich will, z.B. den RGB-Rot Wert eines Zellhintergrundes oder der Zellschrift direkt zu erhalten?

Eine grundsätzliche Frage, Excel kann gleichzeitig 56 Farben darstellen, die stehen quasi in einer farbpalette.
Mehr, andere Farben gibt es nicht. Was man machen kann ist z.B. der Farbe Nr 5 andere RGB Werte zuweisen.
Ist das bei OO Calc genauso/ähnlich? Wieviele Farben?
Wenn ich auf die Symbole für Hintergrundfarbe oder Schriftfarbe klicke zähle ich 110 Farben.
Kann ich oder wie kann ich so wie in Excel auf eine der 110 Farbnummern zugreifen/ sie einer Zelle zuweisen?
In Excel so

Code: Alles auswählen

Range("A1").Interior.Colorindex=34
Range("A1").Font.Colorindex=34
In Starbasic?

Hintergrund meiner Anfrage ist, ich möchte per Tastenkombination die Zellen eines grad markierten Zellbereichs
färben. Und zwar nicht über Zuweisung eines RGB Wertes, das habe ich herausgefunden, das geht über .SetCellBackcolor,
sondern durch Zuweisung der Nummer als Index aus den 110 Farbnummern.

PS: Ich sehe grad vor dem Abschicken, das kaufmännische Und wird falsch angezeigt/dargestellt. Ist das hier üblich?
Liegt es an meinem Browser?

Danke ^ Gruß
Reinhard

Code: Alles auswählen

Sub Farbe
Doc = ThisComponent
mysheet = Doc.Sheets(0)
zelle=mysheet.getCellbyPosition(0,0)
'msgbox "red   " & red(zelle.string) & chr(13) & "green " & green(zelle.string) & chr(13) & "blue  "  & blue(zelle.string)
'msgbox "red   " & red(zelle.value) & chr(13) & "green " & green(zelle.value) & chr(13) & "blue  "  & blue(zelle.value)
FW=zelle.cellbackColor
Wert=FW
On Error Resume Next
Rot = Wert Mod 256
Wert = (Wert - Rot) / 256
Gruen = Wert Mod 256
Wert = (Wert - Gruen) / 256
Blau = Wert Mod 256
meintext= "Farbwert " &FW & chr(13) & chr(13)
meintext= meintext & "Rot " &Rot & chr(13)
meintext= meintext & "Gruen " &Gruen & chr(13)
meintext= meintext & "Blau " &Blau 
msgbox meintext
'zelle.backcolor=34
''zelle.cellbackcolor=34
End Sub


Moderation,4: CODE tags gesetzt

Re: Zellfarbe mit Basic setzen, red(),green(), blue()

Verfasst: So, 09.10.2011 14:15
von Reinardo
Hallo Interessierte,

ich bin neu hier und blick noch gar nix.
Eben bei meinem Artikel klickte ich auf Vorschau, da kam eine Fehlermeldung, sorry weiß den Text nicht mehr :-(, jedenfalls wäre irgendwas mit meinem Beitragstext nicht in Ordnung, dann habe ich ihn, dies ignorierend abgeschickt und er wird angezeigt.
Was wollte mir da diese Fehlermeldung bei der Vorschau sagen, was habe ich falsch gemacht?
Daß ihr auch keine Glaskugeln habt weiß ich :-)) Wodran könnte es denn gelegen haben, mal so frag :-)
Wie gesagt, ich hab nix geändert zwischen Vorschau und Abschicken.

Gruß
Reinhard

Re: Zellfarbe mit Basic setzen, red(),green(), blue()

Verfasst: So, 09.10.2011 14:27
von komma4
Reinardo hat geschrieben:Eben bei meinem Artikel klickte ich auf Vorschau, da kam eine Fehlermeldung
Wenn Du zu lange im Editor bist, dann kommt eine Meldung. Durch Erneutes Abschicken wird die Nachricht aber gespeichert.

Re: Zellfarbe mit Basic setzen, red(),green(), blue()

Verfasst: So, 09.10.2011 14:31
von komma4
Reinardo hat geschrieben:sondern durch Zuweisung der Nummer als Index aus den 110 Farbnummern.
Dafür gibt es keine API.

Tipp: verwende eine Vorlage und weise die der Zelle zu. Da braucht es keine Programmierung dafür.

Re: Zellfarbe mit Basic setzen, red(),green(), blue()

Verfasst: So, 09.10.2011 16:09
von Reinardo
Hallo,

sorry, mir noch unklar wie ich hier direkt auf einzelne Antworten antworten kann.

Aha, ich war zu lange im Editor deshalb kam die Fehlermeldung bei der Vorschau. Okay.

Zu API, das kenne ich schon aber das Wort kam doch in meiner Anfrage gar nicht vor!?
Da will ich doch "nur" wissen ob da Calc/Starbasic so wie Excel ist. Also Farbnummern von 0-56, die man zuweisen kann.
Funktioniert das mit den wohl 110 Farbwerten in Calc genauso.

Und wie greife ich da mit StarBasic darauf zu. Nur mit API, kann ich gar nicht glauben und umgekehrt glaube ich nicht
daß API etwas aus irgendwelchen OO Calc Eintellungen auslesen könnte was man nicht auch mit StarOffice auslesen/benutzen könnte.

Bin grad verwirrt warum du da auf API kommst.

Gruß
Reinhard

Re: Zellfarbe mit Basic setzen, red(),green(), blue()

Verfasst: So, 09.10.2011 16:43
von komma4
Reinardo hat geschrieben:Bin grad verwirrt warum du da auf API kommst.
application programming interface

Die Programmierschnittstelle. Ein Setzen einer Zell-Hintergrundfarbe mittels eine Indexes kommt da nicht vor.

Wie Du selbst gefunden hast kannst Du einen RGB-Wert einstellen. Aber eben keinen Farbindex