Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Colorindex abfragen

Colorindex abfragen
12.08.2004 02:00:40
Der
Ich habe eine umfangreiche Tabelle mit Zellen, die manuell farbig markiert wurden (zB Namensliste mit Frau = rot, Mann = blau, Kind = grün etc.). Da man Farben schlecht in Datenbanken überführen kann, möchte ich nun entsprechend der Farbe in einer neuen Spalte einen verwertbaren Eintrag generieren, zB eben "Mann", "Frau" oder "Kind".
Angeblich kann man über den VB-Editor Functionen erstellen, mit denen das geht...
Ich habe es schon mit folgendem VBA-Script probiert:

Function ColorIndex(rng As Selection)
Dim iColor As Long
iColor = rng.Interior.ColorIndex
ColorIndex = Str(iColor)
End Function

und dann in einer Zelle entspr. "=ColorIndex(A1)" eingegeben,
aber irgendwie bekomme ich nur #NAME.
Ich habe Excel 2003 und eigentlich keine Ahnung von VBA, also bitte erst mal kurz "de Dammfmaschien" erklären ;-)) (--> vollständige Codes, erforderliche Add-ins oder was auch immer)
Wer kann mir helfen ? Danke im voraus !
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Colorindex abfragen
12.08.2004 02:21:06
Thomas
Hi
Hier zwei Funktionen für Dein Problem. Die eine gibt den ColorIndex zurück, und die andere liefert einen entsprechenden Bezeichner für den Index, such Dir eine aus. Kopiere sie in ein normales Modul, dann kannst Du sie in der Tabelle verwenden.


      
Option Explicit
' Version 1 gibt einen LONG zurück; Gut für die Datenbank.
Public Function GetColorIndex(rng As Range) As Long
    GetColorIndex = rng.Interior.ColorIndex
End Function
' Version 1 gibt einen STRING zurück; Gut für's Verständnis.
Public Function GetColorIndex(rng As Range) As String
    
Select Case rng.Interior.ColorIndex
    
Case 3: GetColorIndex = "Frau"
    
Case 5: GetColorIndex = "Mann"
    
Case 50: GetColorIndex = "Kind"
    
'Case x: GetColorIndex = "Irgendwas anderes ..."
    End Select
End Function 


Gruß
Thomas
Risi Thomas Softwareentwicklung
Anzeige
AW: Colorindex abfragen
12.08.2004 14:58:26
Der
Irgendwie funzt das nicht, wenn ich das im Funktionsassistenten aufrufe (bzw in der Zelle mit ='dateiname.xls'!Module2.GetColorIndex(D54)), dann bekomme ich für das Argument (D54) schon "#VALUE" und im Ergebnis dann natürliuch #NAME.
Woran liegt das ?
AW: Colorindex abfragen ohne VBA
Panicman
Hallo Picknicker,
das kann man auch ohne VBA lösen.
Menü/Einfügen/Namen/Festlegen:
Name: FarbNr
bezeiht sich auf: =ZELLE.ZUORDNEN(63;INDIREKT("ZS(-1)";0))
A1 = deine Zelle mit der Hintergrundfarbe
B1 = FarbNr
das INDIREKT("ZS(-1).. sagt, das die Farbnummer der Zelle rechts daneben (Spalte -1) genommen wird.
Wenn du den Namen 2 Spalten links daneben eingibst, must du INDIREKT("ZS(-2)... eingeben.
Gruß
Holger
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Excel Colorindex Abfragen und Auslesen


Schritt-für-Schritt-Anleitung

Um den ColorIndex in Excel auszulesen, kannst du VBA verwenden. Hier sind die Schritte, um dies zu tun:

  1. Öffne Excel und drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  2. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.

  3. Füge den folgenden Code in das Modul ein:

    Function GetColorIndex(rng As Range) As Long
       GetColorIndex = rng.Interior.ColorIndex
    End Function
  4. Schließe den VBA-Editor und gehe zurück zu deiner Excel-Tabelle.

  5. In einer Zelle kannst du jetzt die Funktion =GetColorIndex(A1) verwenden, um den ColorIndex der Zelle A1 zu erhalten.

Wenn du den Farbindex für eine bestimmte Farbe auslesen möchtest, kannst du auch folgende Funktion verwenden:

Function GetColorName(rng As Range) As String
    Select Case rng.Interior.ColorIndex
        Case 3: GetColorName = "Frau"
        Case 5: GetColorName = "Mann"
        Case 50: GetColorName = "Kind"
        Case Else: GetColorName = "Unbekannt"
    End Select
End Function

Verwende dann =GetColorName(A1) in deiner Tabelle.


Häufige Fehler und Lösungen

  • #NAME? Fehler: Dieser Fehler tritt auf, wenn die Funktion nicht erkannt wird. Stelle sicher, dass du die Funktion im VBA-Editor korrekt eingegeben hast und dass du Excel nach dem Hinzufügen der Funktion neu gestartet hast.

  • #VALUE! Fehler: Dieser Fehler kann auftreten, wenn du die Funktion mit einer ungültigen Zellreferenz verwendest. Überprüfe, ob die angegebene Zelle gültig und nicht leer ist.


Alternative Methoden

Wenn du den ColorIndex ohne VBA herausfinden möchtest, kannst du die folgende Formel verwenden:

  1. Gehe zu Formeln > Namensmanager.
  2. Klicke auf Neu und erstelle einen Namen wie FarbNr.
  3. Verwende folgende Formel für die Bezugnahme:

    =ZELLE.ZUORDNEN(63;INDIREKT("ZS(-1)";0))

Jetzt kannst du in einer Zelle =FarbNr verwenden, um die Farbe der Zelle rechts neben der aktuellen Zelle zu erhalten.


Praktische Beispiele

  1. Du hast eine Tabelle mit Zellen, die manuell farbig markiert sind. Mit der oben genannten Funktion GetColorIndex kannst du den ColorIndex jeder Zelle ermitteln und in einer neuen Spalte anzeigen lassen.

  2. Wenn du verschiedene Farben für unterschiedliche Kategorien verwendest (z.B. rot für "Frau", blau für "Mann"), kannst du die GetColorName Funktion verwenden, um automatisch die Bezeichnung der Farbe anzuzeigen.


Tipps für Profis

  • Du kannst die Farbindex Excel-Tabelle anpassen, indem du die Select Case-Anweisung in der GetColorName-Funktion erweiterst, um mehr Farben und Namen zu integrieren.
  • Nutze die .Interior.ColorIndex-Eigenschaft in komplexeren VBA-Skripten, um die Formatierung von Zellen dynamisch zu ändern, basierend auf deren ColorIndex.

FAQ: Häufige Fragen

1. Was ist der ColorIndex in Excel?
Der ColorIndex ist ein numerischer Wert, der einer bestimmten Farbe in Excel zugeordnet ist. Jeder Index entspricht einer spezifischen Farbe in der Excel-Farbpalette.

2. Wie kann ich den ColorIndex einer Zelle ohne VBA herausfinden?
Du kannst die Funktion ZELLE.ZUORDNEN verwenden, um den Farbwert einer Zelle zu ermitteln, ohne VBA zu verwenden.

3. Welche Excel-Versionen unterstützen das Auslesen des ColorIndex?
Der Einsatz von VBA zur Abfrage des ColorIndex funktioniert in den meisten Versionen, einschließlich Excel 2003 und späteren Versionen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige