Excel: Zellenfarben

  • #1
M

Michael_B

Bekanntes Mitglied
Themenersteller
Dabei seit
21.09.2002
Beiträge
860
Reaktionspunkte
0
Ort
Köln
Hallo,

ich muss grad ein Makro bearbeiten, dass je nach Zahlenwert einer Zelle, eine entsprechende Hintergrundfarbe berechnet bzw. berechnen soll... frage hierzu: kann es sein, dass Excel nur wenige verschiedene Farben gleichzeitig darstellen kann?
Mir scheint, dass eine durch die Makro-Funktion RGB(r, g, b) berechnete Farbe im Endeffekt eher sowas wie ein Index einer beschränkten Farbpalette ist, da die Farbunterschiede doch oft zu groß sind (im Verhältnis zu den Zahlen).

Sehr komisch das
M.
 
  • #2
Hallo Michael_B ,

das hast du schon richtig beobachtet  ;D

Excel hat eine Farbpalette von 56 Farben und auf die beschränkt es sich.
Wird per RGB eine Farbeigenschaft gesetzt, sucht Excel sich aus den 56 das nächstliegende.

Die Farbpalette bzw. die zum Farbindex zugeordnete Farbe kann man jedoch ändern.  Ojekte, deren Farbeigenschaft mit einem geänderten Farbindex gesetzt ist, ändern dann auch ihre Farbe.

Gruß Matjes :)
 
  • #3
Hallo Matjes,

vielen Dank für die Bestätigung... da muss ich dann wohl etwas tricksen, oder vielmehr meinen Auftraggeber beruhigen *fg*

Lg
M.
 
  • #4
Hallo Michael_B,

ich hab dir ein kleines Demo-Makro zur Farbrasterrung in Excel geschrieben.

Gruß Matjes :)
Code:
Option Explicit
Sub Excel_ColorIndexRGB_Alle()
 
->kleine Demo wie Excel RGB-Farben auf die Frabpalette abbildet
->Die RGB-Werte sind so variiert, daß von Zelle zu Zelle
->sich ein Wert um 5 unterscheidet.
 
 Dim ws As Worksheet
 Dim z As Long, sp As Long, gelb As Long, blau As Long, rot As Long
 Dim AnzahlSichtbareZeilen As Long
 
 Set ws = ActiveWorkbook.Worksheets.Add
 
 With ws.Cells
  .ColumnWidth = 8
  .RowHeight = 10
  .Font.Size = 7
  .NumberFormat = @
 End With
 ActiveWindow.Zoom = 50
 
 AnzahlSichtbareZeilen = ActiveWindow.VisibleRange.Rows.Count
 z = 1
 For rot = 0 To 255 Step 5
  For gelb = 0 To 255 Step 5
   sp = 1
   For blau = 0 To 255 Step 5
    ws.Cells(z, sp).Interior.Color = RGB(rot, gelb, blau)
    ws.Cells(z, sp).Value = rot & , & gelb & , & blau
    sp = sp + 1
   Next
   z = z + 1
   
   If z > AnzahlSichtbareZeilen Then ActiveWindow.ScrollRow = z - AnzahlSichtbareZeilen
  Next
  z = z + 1
 Next
Aufrauemen:
 Set ws = Nothing
End Sub
 
Thema:

Excel: Zellenfarben

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.963
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben