Microsoft Excel

Herbers Excel/VBA-Archiv

Colorindex abfragen

Betrifft: Colorindex abfragen von: Der Picknicker
Geschrieben am: 12.08.2004 02:00:40

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 !
  


Betrifft: AW: Colorindex abfragen von: Thomas Risi
Geschrieben am: 12.08.2004 02:21:06

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 


     Code eingefügt mit Syntaxhighlighter 3.0

Gruß
Thomas

Risi Thomas Softwareentwicklung




  


Betrifft: AW: Colorindex abfragen von: Der Picknicker
Geschrieben am: 12.08.2004 14:58:26

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 ?


  


Betrifft: AW: Colorindex abfragen ohne VBA von: Panicman
Geschrieben am: 13.08.2004 10:37:26

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


 

Beiträge aus den Excel-Beispielen zum Thema "Colorindex abfragen"