Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
944to948
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
944to948
944to948
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Win-Farbcode (GetSysColor)-> Excel-Farbe umwandeln

Win-Farbcode (GetSysColor)-> Excel-Farbe umwandeln
23.01.2008 20:56:21
Tim
Hallo,
ich habe folgendes Problem:
ich habe mit VBA eine kleine Anwendung programmiertt, die Listen erstellt und nach Excel exportiert (es wird ein Excelsheet erzeugt). Jetzt möchte ich gern 1 Spalte im Excelsheet farbig machen, also die Zellfarbe ändern. Dabei möchte ich die aktuell eingestellte Windows-Farbe für den Hintergrund von Fenstern nutzen.
Die Farbe ermittle ich mittels GetSysColor(12) - da kommt ein Farbcode von 85xxxx raus. Jetzt wollte ich das direkt an die Zelle mittels ".Interior.ColorIndex = " weitergeben, nur leider hat Excel ja einen eigenen ColorIndex....
Wie kann ich den Windows-Farbcode nun umwandeln in den Excel-Farbcode? Steh gerade irgendwie aufm Schlauch.
MfG Tim

21
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Win-Farbcode (GetSysColor)-> Excel-Farbe umwandeln
23.01.2008 21:05:13
Hajo_Zi
Hallo Tim,
hier mal die Zuordnung der Nummer zu den Standardfarben.
Tabelle1

 ABH
1 10
2 216777215
3 3255
4 465280
5 516711680
6 665535
7 716711935
8 816776960
9 9128
10 1032768
11 118388608
12 1232896
13 138388736
14 148421376
15 1512632256
16 168421504
17 1716751001
18 186697881
19 1913434879
20 2016777164
21 216684774
22 228421631
23 2313395456
24 2416764108
25 258388608
26 2616711935
27 2765535
28 2816776960
29 298388736
30 30128
31 318421376
32 3216711680
33 3316763904
34 3416777164
35 3513434828
36 3610092543
37 3716764057
38 3813408767
39 3916751052
40 4010079487
41 4116737843
42 4213421619
43 4352377
44 4452479
45 4539423
46 4626367
47 4710053222
48 489868950
49 496697728
50 506723891
51 5113056
52 5213107
53 5313209
54 546697881
55 5510040115
56 563355443
57 IndexFarbindex


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4

Anzeige
AW: Win-Farbcode (GetSysColor)-> Excel-Farbe umwandeln
23.01.2008 21:14:00
Tim
Hallo Hajo,
vielen Dank für die schnelle Antwort.
Sind das alle Farben, die im System eingestellt werden können? Ich dachte da gibt es Tausend verschiedene Möglichkeiten und man könnte die Farbcodes umwandeln...?
Das sieht so aus als müsste ich die Farbwerte Variablen zuweisen und dann per Abfrage zuweisen... oder gibt es noch andere Lösungen?
MfG Tim

AW: Win-Farbcode (GetSysColor)-> Excel-Farbe umwandeln
23.01.2008 21:27:40
Hajo_Zi
Hallo Tom,
Excel bis Version 2003 kann nur 56 Farben verwalten. Die 56 Farben kannst Du ändern. Aber es sind immer nur 56 Farben. Bei Deinem Problem dürfte die Version nicht ohne Relevanz sein.
Gruß Hajo

Anzeige
AW: Win-Farbcode (GetSysColor)-> Excel-Farbe umwandeln
23.01.2008 21:31:00
Hajo_Zi
Hallo Tim,
in Version 2007 .Interior.Color =Deine_Farbnummer
Gruß Hajo

AW: Win-Farbcode (GetSysColor)-> Excel-Farbe umwandeln
23.01.2008 21:38:32
Tim
Hallo Hajo,
heißt das, dass Excel2007 Windows Farbcodes verarbeiten kann? Das klingt ja gut!
Für mein Problem müsste ich eine Abfrage einbauen, wenn Version älter als Excel2007, dann entsprechend den 56 Variablen, ansonsten Farbcode direkt. Oder?
MfG Tim

AW: Win-Farbcode (GetSysColor)-> Excel-Farbe umwandeln
23.01.2008 21:50:17
Hajo_Zi
Hallo Tim,
ja das bedeutet es, Excel 2007 kann 4 mio Farben einsetzen aber nur irgenwas über 2000 unterschiedliche in der Arbeitsmappe glaube ich.
Gruß Hajo

Anzeige
AW: Win-Farbcode (GetSysColor)-> Excel-Farbe umwandeln
23.01.2008 22:03:30
Tim
Ok,
vielen vielen Dank für eure Tipps, Hajo und Kurt. Ihr habt mir sehr geholfen.
MfG Tim

AW: Win-Farbcode (GetSysColor)-> Excel-Farbe umwandeln
23.01.2008 21:12:51
Original
Hi,
na ja, so ganz unrelevant ist die Version nicht, Excel 2007 kann deutlich mehr Farben.
Du musst zuerst die Excelfarben umbiegen, etwa so:
Thisworkbook.Colors(1) = GetSysColor(12)
Cells(1,1).Interior.Colorindex = 1
Gehe davon aus, dass das mit den SyColors so richtig abgefragt ist.
mfg Kurt

AW: Win-Farbcode (GetSysColor)-> Excel-Farbe umwandeln
23.01.2008 21:16:43
Tim
Hallo Kurt,
so wie du es beschrieben hast, müsste ich das aber vorher für jede mögliche Farbe machen (wie es Hajo beschrieben hat). Ich dachte es gibt für jeden Windows-Farbcode auch einen entsprechenden Excel-Farbcode sodass man diese umwandeln kann...?!
Ich nutze hauptsächlich Excel2003.
MfG Tim

Anzeige
AW: Win-Farbcode (GetSysColor)-> Excel-Farbe umwandeln
23.01.2008 21:20:00
Original
Hi,
"...müsste ich das aber vorher für jede mögliche Farbe machen..."
Genau, sind doch eh nur 56 möglich.
mfg Kurt

AW: Win-Farbcode (GetSysColor)-> Excel-Farbe umwandeln
23.01.2008 22:08:49
Daniel
Hi
ums mal vielleicht etwas genauer zu formulieren:
Excel kann schon das ganze RGB-Spektrum darstellen, aber maximal 56 verschiedene Farben gleichzeitig.
solange man keine Photos mit Excelzellen als Pixel darstellen will, sollte das eigentlich ausreichen.
gruß, Daniel

AW: Win-Farbcode (GetSysColor)-> Excel-Farbe umwandeln
23.01.2008 22:13:00
Tim
Hi,
"Excel kann schon das ganze RGB-Spektrum darstellen, "
Aber das würde ja bedeuten, dass ich doch jeden Windows-Farbcode auch in Excel darstellen kann... nur sind das ja dann ein paar Tausend... ?!
MfG Tim

Anzeige
AW: Win-Farbcode (GetSysColor)-> Excel-Farbe umwandeln
23.01.2008 22:15:51
Original
Hi,
jede beliebige Farbe, aber immer nur 56 gleichzeitig, nun klarer?
mfg Kurt

AW: Win-Farbcode (GetSysColor)-> Excel-Farbe umwandeln
23.01.2008 22:26:00
Daniel
Richtig,
du kannst nur nicht der Zelle direkt die Farbe zuweisen, du musst
1. einem der 56 Farbregister die RGB-Farbe zuweisen
application.colors(1) = 123456 (beliebiger farbcode zwischen 0 und 256^3)


2. deiner Zelle die Farbe dieses Blattregisters zuweisen


range("A1").interior.colorindex = 1


dann hat die Zelle A1 die RGB-Farbe 123456
Gruß, Daniel

AW: Win-Farbcode (GetSysColor)-> Excel-Farbe umwandeln
23.01.2008 22:59:00
Tim
Aha, jetzt wirds klarar! :-)
Danke für die ganzen Erklärungen, ich denke 56 Farben reichen vollkommen aus.
MfG Andreas

Anzeige
Außerdem hat xl noch eine 2.Farbindizes...
23.01.2008 23:23:00
Luc:-?
...liste für Objekte, Tim.
Da tauchen dann auch die Windows-Standardfarbeinstellungen auf → diese Indizes stimmen vom Zahlwert auch nicht in Gänze mit den Zellfarbindizes überein.
Gruß Luc :-?

AW: Außerdem hat xl noch eine 2.Farbindizes...
23.01.2008 23:34:56
Tim
aha... hast du da noch nen Tipp wonach ich da suchen könnte!?
MfG Tim

Ja, SchemeColorIndex! Ist allerdings...
24.01.2008 02:34:49
Luc:-?
...wohl keine Farbtabelle in der Hilfe, Tim.
Die Indizes reichen bei meiner xlVs(9) von 0...80 wobei 8...15 gleich 0...7 sind. Das hängt evtl damit zusammen, dass hier bei DOS die Leuchtend- bzw Blink-Farbvarianten der erstgenannten standen. Ab 57 kommen dann wohl die Systemfarben, die sich ebenso wie auch die anderen Farben von deinen unterscheiden dürften. Die Farbnamen habe ich ohnehin CAD-Pgmm angepasst, weil ich keinen Weg gefunden habe, die xlFarb-QuickInfo auszulesen.
Dann gibt es noch vbFarbkonstanten: Systemfarben-Konstanten und Farbkonstanten (in der VB-Hilfe unter Konstanten bzw direkt nach dem Stichwort suchen) - und dann noch der Klassiker QBFarben.
Nachfolgend mal ein Bild mit meiner SchemeColorIndex-Belegung:
Userbild
Gruß Luc :-?

Anzeige
Aber wie gesagt - für Objekte! Und...
24.01.2008 02:46:00
Luc:-?
...57...63 gehören wohl noch zu den Diagrammfarben (wg der Verschiebung). System dann ab 64...80.
Luc :-?

AW: Win-Farbcode (GetSysColor)-> Excel-Farbe umwan
25.01.2008 16:08:00
Tim
Hallo Daniel,
ich habe es so probiert wie du beschrieben hattest, dabei kommt jedoch der Fehler "Object doesn't support this property or method" wenn ich "application.colors(1) = 8421504 machen möchte....
8421504 ist die Systemfarbe, die mittels GetSysColor(12) ausgelesen wurde.
MfG Tim

AW: Win-Farbcode (GetSysColor)-> Excel-Farbe umwan
25.01.2008 20:46:42
Daniel
Sorry
es muss natürlich heissen,

ActiveWorkbook.Colors(1) = 8421504
Cells(1, 1).Interior.ColorIndex = 1


die Farbeinstellung kann ja für jede Datei individuell eingestellt werden, deswegen Workbook und nicht Application.
kleiner Tip noch am Rande, wenn du mal nicht weißt, wie ein VBA-Befehl funktioniert, dann führe doch einfach die Aktion (hier Farbe einstellen unter EXTRAS-OPTIONEN-FARBE-ÄNDERN) von Hand durch und schau dir dann das aufgezeichnete Makro an.
da siehst du dann (meistens) wie der Befehl funktioniert und welche Optionen es gibt.
wenn du dann noch mehr Infos brauchst, markierst du einfach den Befehl und drückst F1, dann bekomst du die Hilfe zum Befehl angezeigt.
Gruß, Daniel

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige