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

Forumthread: Farbe von Farbwert (Zahl) ermitteln

Farbe von Farbwert (Zahl) ermitteln
11.06.2008 16:04:16
Farbwert
Hallo,
folgendes Makro habe irgendwo in diesem Forum gefunden.
Mit der SummeWenn kann man dann auch die Total-Werte jeder Zahl ermitteln.
Nun würde mich aber interessieren, ob man umgekehrt eine Zahl eingeben kann und mit dieser
Zahl in der Zellen Rechts die Farbe erstellen kann.
z.B. 8 in C2 eingeben, und in B2 die entsprechende Farbe "malen"
Danke für Hilfe
Markus

Function Farbe(Zelle)
' Farbindex der Hintergrundfarbe der Zelle ermitteln
' z.B. Zelle B1 einfärben,
' in Zelle C1 folgende Formel eingeben:
' =farbe(B1)
Farbe = Zelle.Interior.ColorIndex
End Function


Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Excelformel kann also keine anderen Zellen ändern?
11.06.2008 16:38:40
Tobias
Folgender Lösungsansatz war erfolglos:

Function Färben(ZielZelle As Range, Farbe As Variant) As String
ZielZelle.Interior.ColorIndex = Farbe
End Function


Das brachte mich auf die Idee die Funktion ZellenÄndern zu schreiben:


Function ZellenÄndern(ZielZelle As Range) As String
ZielZelle.Value = 5
End Function


Auch diese Funktion war erfolglos.
Das heißt dann wohl, dass Excelformeln keine anderen Zellen verändern dürfen. Stimmt das so? Das wäre doch eine bemerkenswerte Erkenntnis.
Schönen Gruß, Tobias
http://www.tobiasschmid.de/

Anzeige
AW: Excelformel kann also keine anderen Zellen ändern?
11.06.2008 16:44:00
Tino
Hallo,
genau Funktionen können nur die eigene Zelle verändert, aber da du sowieso keine Rückgabe in Deiner Funktion hast kannst du es auch mit einer Sub machen.
Gruß Tino
www.tinomargit.com

Das ist nur die halbe Wahrheit,...
11.06.2008 17:00:58
Luc:-?
...Tino & Tobias!
Fktt (auch udF!) können (fast) nur den Wert der eigenen Zelle ändern. Für alles Andere, was mitunter von Fktt verlangt wird, kann man sie nur als Initiator (inkl Parameterübergabe) verwenden. Die eigentliche Arbeit muss dann eine auf ein passendes Ereignis wie bspw Worksheet_Change reagierende Ereignisprozedur bzw von dieser aufgerufene Subroutine (besser!) verrichten (hierzu gibt's auch im Herber-Archiv Material!).
Hier geht das aber sicher auch anders, d.h., die udF kann wohl entfallen... ;-)
Ansonsten könnte ja auch eine bedingte Formatierung auf die Nachbarzelle gesetzt wdn, die unter Formel ist die Formelzelle auswertet.
Gruß Luc :-?

Anzeige
AW: sag ich doch, mit sub owt.
11.06.2008 17:15:00
Tino

Ja, per bedingter Formatierung auf der...
11.06.2008 17:27:56
Luc:-?
...Nachbarzelle, Markus.
Wenn du aber alle Farben darstellen willst, ist eine VBA-Subroutine erforderlich. Dabei ist (vor xl12) wesentlich, ob du die Indexfarben der Zelle bzw eines Objektes oder ob du Echtfarben auf Grund ihrer (RGB-)Farbwerte und wie du diese dann darstellen willst: RGB-Reihe, dezimal, hexadezimal oder gar Namen wie Blau, Rot usw.
Wenn du Echtfarben willst, ist (vor xl12) zu beachten, dass Zellen nur die Indexfarben anzeigen können und die entsprechenden Objektfarben damit nicht immer übereinstimmen. Auch musst du dann evtl individuelle Farbpaletteneinstellungen berücksichtigen und letztlich wieder über den Index gehen, wenn du die Farbwahl nicht XL's Ähnlichkeitsalgorithmus überlassen willst (udFktt, die in Blattformeln stehen, verwenden automatisch die richtige Palette, in Prozeduren aufgerufene udFktt verwenden - quasi ohne Blattbezug! - stets die Standardpalette).
Bei Detailfragen einfach hier noch mal melden!
Gruß Luc :-?
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Farbcode einer Zelle in Excel ermitteln und anwenden


Schritt-für-Schritt-Anleitung

Um den Farbcode einer Zelle in Excel zu ermitteln und ihn in einer anderen Zelle anzuwenden, kannst Du eine benutzerdefinierte Funktion in VBA verwenden. Hier ist eine einfache Anleitung:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu:

    • Rechtsklicke auf „VBAProject (DeineDatei.xlsm)“.
    • Wähle „Einfügen“ > „Modul“.
  3. Kopiere den folgenden Code in das Modul:

    Function Farbe(Zelle As Range)
       ' Farbindex der Hintergrundfarbe der Zelle ermitteln
       Farbe = Zelle.Interior.ColorIndex
    End Function
  4. Speichere das Modul und schließe den VBA-Editor.

  5. Verwende die Funktion in Excel:

    • Gebe in einer Zelle die Formel =Farbe(B1) ein, um den Farbcode von Zelle B1 zu ermitteln.

Um eine Zelle mit dem ermittelten Farbcode zu färben, musst Du ein weiteres VBA-Skript verwenden, da Excel-Formeln keine anderen Zellen verändern können.


Häufige Fehler und Lösungen

  • Fehler: Funktion gibt keinen Wert zurück
    Lösung: Stelle sicher, dass Du die Funktion korrekt in einer Zelle anwendest, z.B. =Farbe(B1).

  • Fehler: Zelle wird nicht gefärbt
    Lösung: Excel-Formeln können keine anderen Zellen verändern. Du musst eine VBA-Subroutine verwenden.


Alternative Methoden

Wenn Du den Farbcode einer Zelle ermitteln möchtest, kannst Du auch folgende Methoden in Betracht ziehen:

  • Bedingte Formatierung: Du kannst die bedingte Formatierung verwenden, um die Farbe einer Zelle basierend auf dem Wert einer anderen Zelle zu ändern.
  • VBA-Subroutine: Eine Subroutine kann genutzt werden, um die Farbe einer Zelle basierend auf einer Eingabe zu ändern.

Hier ein Beispiel einer VBA-Subroutine:

Sub ZelleFärben()
    Dim ZielZelle As Range
    Set ZielZelle = Range("B2")
    ZielZelle.Interior.ColorIndex = 8 ' Färbe die Zelle mit dem Farbindex 8
End Sub

Praktische Beispiele

  1. Wenn Du den Farbcode einer Zelle herausfinden und in einer anderen Zelle anwenden möchtest, kannst Du die Funktion Farbe verwenden, um den Farbcode zu ermitteln, und dann eine Subroutine, um die Zelle zu färben.
  2. Um eine halbe Zelle zu färben, könntest Du eine kombinierte Lösung aus VBA und bedingter Formatierung nutzen.

Tipps für Profis

  • Farbnummer ermitteln: Verwende die Funktion RGB in VBA, um spezifische Farben zu ermitteln und anzuwenden.

    ZielZelle.Interior.Color = RGB(255, 0, 0) ' Setzt die Zelle auf Rot
  • Farben in Zahlen umwandeln: Nutze die Color-Eigenschaft, um den Farbcode in verschiedenen Formaten (RGB, Hex) zu erhalten.

  • Erstelle eine Farbpalette: Definiere eine Palette von Farben, die Du häufig verwendest, und verwende deren Farbindizes.


FAQ: Häufige Fragen

1. Wie kann ich den Farbcode einer Zelle ermitteln?
Du kannst die benutzerdefinierte Funktion Farbe verwenden, um den Farbcode einer Zelle zu ermitteln.

2. Kann ich Excel-Formeln verwenden, um eine andere Zelle zu färben?
Nein, Excel-Formeln können nur die eigene Zelle verändern. Du musst VBA verwenden, um andere Zellen zu färben.

3. Was ist der Unterschied zwischen Farbindex und RGB-Farbe?
Der Farbindex bezieht sich auf vordefinierte Farben in Excel, während die RGB-Farbe spezifische Farbwerte angibt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige