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

Forumthread: farbindex auslesen

farbindex auslesen
14.01.2009 20:22:00
rokett
Hallo gemeinde
ich habe schon einiges durchsucht aber leider nichts passendes gefunden
ich möchte in der datei in spalte b den farbindex der füllfarbe (hintergrundfarbe) haben, für alle zeilen, auch wenn keine füllfarbe vorhanden ist.
oder gibt es eine möglichkeit ohne den umweg über den farbindex die spalte an nach farben zu sortieren ?
https://www.herber.de/bbs/user/58403.xls
gruss
rokett
Anzeige

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Farbindex auslesen mit ZELLE.ZUORDNEN
14.01.2009 20:52:00
Erich
Hallo VORNAME,
definiere einen Namen (myFarbe), in dem kann man die XL4-Fuktion ZELLE.ZUORDNEN nutzen:
 AB
2 6
3 0

Formeln der Tabelle
ZelleFormel
B2=myFarbe
B3=myFarbe
Namen in Formeln
ZelleNameBezieht sich auf
B2myFarbe=ZELLE.ZUORDNEN(63;INDIREKT("ZS(-1)";0))+0*JETZT()
B3myFarbe=ZELLE.ZUORDNEN(63;INDIREKT("ZS(-1)";0))+0*JETZT()

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: farbindex auslesen
15.01.2009 06:53:00
rokett
hallo erich und robert
danke für die antworten
das makro von robert ist fast genau das was ich suche. funzt super für spalte "B"

Sub FARBEN_SPALTE_B()
Dim bereich As Range
Dim zelle
Dim x
Columns("B").Clear
For x = 2 To 100
If Cells(x, 1).Interior.ColorIndex > 1 Then
Cells(x, 2) = Cells(x, 1).Interior.ColorIndex
End If
Next
End Sub


was muss ich verändern wenn ich das z.b. für spalte "L" haben will.
gruss
rolf

Anzeige
AW: farbindex auslesen
15.01.2009 07:21:00
rokett
das hab ich selber hinbekommen, aber gibt es noch eine möglichkeit das immer der index links ausgelesen wird ?
ich meine so das immer nur der buchstabe der spalte verändert werden muss ?
danke
rolf
AW: farbindex auslesen
15.01.2009 08:39:00
robert
hi,
die zahlen in den Cells(x,.. befehlen sind die spaltennummern,
wenn die abfrage und die ausgabe woanders erfolgen soll, diese nummern anpassen
1 ist für spalte A, 2 für spalte B usw..
ok?
gruß
robert
Columns("B").Clear ' hier wird Spalte B gelöscht-anpassen
For x = 2 To 100
Cells(x, 1).Interior.ColorIndex > 1 Then
Cells(x,2) = Cells(x, 1).Interior.ColorIndex
End If
Anzeige
AW: Farbindex auslesen
15.01.2009 10:47:00
Erich
Hallo Rolf,
probier mal

Option Explicit
Sub FarbTest()
FarbNrIn "B2:B70"
End Sub
Sub FarbNrIn(strBer As String)
Dim rng As Range, lngInd As Long
With Range(strBer)
.ClearContents
For Each rng In .Cells
lngInd = rng.Offset(, -1).Interior.ColorIndex
If lngInd = xlColorIndexNone Then lngInd = -1 ' ohne Füllfarbe
'        If lngInd > 0 Then rng.Value = lngInd
rng.Value = lngInd
Next rng
End With
End Sub

In deinem ersten Beitrag hast du geschrieben: "für alle zeilen, auch wenn keine füllfarbe vorhanden ist"
Gilt das noch? Jetzt wird da -1 geschrieben, wenn die Hintergrundfarbe leer ist.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Farbindex auslesen
15.01.2009 14:06:00
rokett
hallo erich
das makro funzt gut, geht das auch ohne die -1 ausgabe ?
gruss
rolf
AW: Farbindex auslesen
15.01.2009 15:19:00
Erich
Hi Rolf,
die dazu gedachte Zeile hatte ich doch im letzten Code schon (auskommentiert) drin:

Sub FarbNrIn(strBer As String)
Dim rng As Range, lngInd As Long
With Range(strBer)
.ClearContents
For Each rng In .Cells
lngInd = rng.Offset(, -1).Interior.ColorIndex
If lngInd > 0 Then rng.Value = lngInd
Next rng
End With
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Farbindex auslesen
15.01.2009 15:51:28
rokett
funzt gut
danke erich
@erich
15.01.2009 16:16:00
rokett
hallo erich, nochmals danke
ich möchte nach der zuweisung die datei nach den farbwerten sortieren, ist das so realisierbar das immer nach der spalte sortiert wird die hier eingetragen wurde

Sub FarbTest()
'nur hier die spalte ändern
FarbNrIn "B2:B70"
End Sub


gruss
rolf

Anzeige
AW: Sort nach Hintergrundfarben
15.01.2009 16:46:00
Erich
Hi Rolf,
das würde ich dann so machen:

Option Explicit
Sub FarbTest()
With Range("B2:B70")    'nur hier die spalte ändern
FarbNrIn .Cells
FarbSort .Cells
End With
End Sub
Sub FarbNrIn(rngBer As Range)
Dim rng As Range, lngInd As Long
rngBer.ClearContents
For Each rng In rngBer
lngInd = rng.Offset(, -1).Interior.ColorIndex
If lngInd > 0 Then rng.Value = lngInd
Next rng
End Sub
Sub FarbSort(rngB As Range)
rngB.EntireRow.Sort Key1:=rngB(1), Order1:=xlAscending, _
Header:=xlGuess, OrderCustom:=1, Orientation:=xlTopToBottom
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Sort nach Hintergrundfarben
15.01.2009 18:27:00
rokett
danke
;
Anzeige
Anzeige

Infobox / Tutorial

Farbindex in Excel auslesen und nutzen


Schritt-für-Schritt-Anleitung

Um den Farbindex in Excel auszulesen, kannst Du VBA verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und gehe auf die Registerkarte Entwicklertools. Wenn diese nicht sichtbar ist, aktiviere sie in den Excel-Optionen.

  2. Klicke auf "Visual Basic", um den VBA-Editor zu öffnen.

  3. Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject (DeineDatei.xlsx)" > Einfügen > Modul.

  4. Füge den folgenden VBA-Code ein:

    Sub FarbIndexAuslesen()
       Dim rng As Range
       Dim zelle As Range
       Dim farbindex As Long
    
       Set rng = Range("B2:B100") ' Hier kannst Du den Bereich anpassen
       rng.ClearContents ' Vorherige Werte löschen
    
       For Each zelle In rng
           farbindex = zelle.Offset(0, -1).Interior.ColorIndex ' Füllfarbe der linken Zelle
           If farbindex > 0 Then
               zelle.Value = farbindex
           End If
       Next zelle
    End Sub
  5. Passe den Bereich an, wenn Du für eine andere Spalte (z.B. Spalte "L") arbeiten möchtest, ändere einfach Range("B2:B100") auf den gewünschten Bereich.

  6. Führe das Makro aus: Klicke auf Run oder drücke F5.


Häufige Fehler und Lösungen

  • Fehler: "Method 'Range' of object '_Global' failed"

    • Lösung: Stelle sicher, dass der angegebene Zellbereich korrekt ist und existiert.
  • Fehler: Negative Farbindex-Werte

    • Lösung: Stelle sicher, dass Du die Zeile If lngInd > 0 Then im Code aktiviert hast, um nur positive Werte anzuzeigen.
  • Farbindex wird nicht angezeigt

    • Lösung: Überprüfe, ob die Zellen tatsächlich eine Füllfarbe haben. Wenn keine, wird der Farbindex nicht angezeigt.

Alternative Methoden

Falls Du den Farbindex nicht über VBA auslesen möchtest, gibt es auch die Möglichkeit, den Farbindex manuell zu ermitteln:

  1. Farben im Excel-Ribbon prüfen: Klicke mit der rechten Maustaste auf die Zelle und wähle "Zellen formatieren". Unter "Füllung" kannst Du die verwendete Farbe sehen.
  2. Verwendung von Formeln: Mit der Funktion ZELLE.ZUORDNEN kannst Du den Farbindex in einer bestimmten Zelle ermitteln.

    =ZELLE.ZUORDNEN(38;A1)  'A1 ist die Zelle, deren Farbindex Du herausfinden möchtest

Praktische Beispiele

Hier sind einige praktische Beispiele, wie Du den Farbindex in Excel verwenden kannst:

  1. Farbindex für Spalte "C" auslesen:

    Sub FarbCauslesen()
       Dim rng As Range
       Set rng = Range("C2:C100")
       ' Rest des Codes anpassen
    End Sub
  2. Farbindex sortieren:

    Sub FarbSortieren()
       With Range("B2:B100")
           .Sort Key1:=.Cells(1), Order1:=xlAscending
       End With
    End Sub

Tipps für Profis

  • Dynamische Bereiche nutzen: Verwende UsedRange oder CurrentRegion, um automatisch den Bereich anzupassen, anstatt ihn manuell zu definieren.
  • Fehlerbehandlung: Implementiere Fehlerbehandlungsroutinen in Deinem VBA-Code, um unerwartete Fehler elegant zu handhaben.
  • Farbindex speichern: Speichere häufig verwendete Farbindizes in einer separaten Tabelle für eine schnellere Referenz.

FAQ: Häufige Fragen

1. Wie kann ich den Farbindex für mehrere Spalten gleichzeitig auslesen?

  • Du kannst eine Schleife durch mehrere Spalten implementieren, indem Du den Bereich in einer For-Schleife anpasst.

2. Warum zeigt die Zelle "Null" an?

  • Das bedeutet, dass die Zelle keine Füllfarbe hat. Stelle sicher, dass die Zelle eine Hintergrundfarbe hat, um den Farbindex zu sehen.

3. Ist es möglich, den Farbindex auch für Formen auszulesen?

  • Ja, Du kannst den Farbindex von Formen mit Shape.Fill.BackColor.RGB in VBA herausfinden.

Nutze diese Schritte und Tipps, um den Farbindex in Excel effektiv auszulesen und zu verwenden!

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige