Jump to content
Roulette Forum

Recommended Posts

Geschrieben

Hi, ihr Excelexperten!

Ich habe schon bei jeder neuen Version von Excel bemängelt, dass man nicht nach Farben sortieren kann,

der Beitrag zu den Drittelchancen läßt in mir die Hoffnung keimen, dass man das Problem doch lösen kann.

Ich möchte verschiedene Textstellen in einem Bemerkungsfeld farbig markieren und dann z.b. bur alle gelben Texte

darstellen.

Weiß jemand Rat?

Wiessee

Geschrieben (bearbeitet)

Moin wiessee,

dies ist über 'Bedingte Formatierung' mit Hilfsspalten möglich, allerdings

hast Du nur 3 verschiedene Farben zur Verfügung.

In einer Hilfsspalte steht eine Codezahl für die Farbe, die Darstellung wird

über WENN-Formeln gesteuert.

Ich habe hier vor längerer Zeit mal ein Buchhaltungsprogramm reingestellt,

vor allem um am Beispiel zu zeigen, welche Möglichkeiten mit der 'Bedingten

Formatierung' gegeben sind.

Der Thread heißt:

Grüße, Monopolis.

bearbeitet von Nachtfalke
Linksetzung
Geschrieben
Weiß jemand Rat?

@wiessee,

ja, ich habe Dir eine kleine VBA-Routine geschrieben, mit der 56 Farben möglich sind:

Public Sub show_FarbCodes()
Dim nr As Integer
Dim nFarbCode As Integer

For nr = 2 To 25
' Spalte 3=Bemerkung; Spalte 4=FarbCode
nFarbCode = Sheets("Tabelle1").Cells(nr, 3).Interior.ColorIndex
Sheets("Tabelle1").Cells(nr, 4).Value = IIf(nFarbCode >= 0, nFarbCode, "")
Next
End Sub

Ich unterstelle das folgende Szenario:

a) in Spalte C soll sich das Bemerkungsfeld befinden, was Du farblich markieren willst

b) Spalte D reservieren wir für eine Spalte, in welche die Farbcodes geschrieben werden

c) wir markieren einen Datenbereich einschließlich der Spaltenüberschriften und aktivieren über Menü: Daten - Filter - Autofilter

nun das "Kochrezept" für die Nutzung:

1. Alt+F11 drücken, um in den VBA-Bereich zu kommen

2. Menü - Einfügen - Modul

3. den obigen Code-Block in die Zwischenablage kopieren und im neuen Modul einfügen

4. speichern und VBA-Fenster schließen

5. Alt+F8 drücken und das Makro show_FarbCodes markieren und auf [Ausführen] klicken

6.

in der Spalte D (Farbcodes) Klappbox von Autofilter aufklappen und die gewünschte

Farbe anklicken (z.B. 6 für gelb)

7. fertig: damit werden nur die Zeilen mit gelb markierten Bemerkungen angezeigt

Das Szenario ist natürlich nur als Prototyp gedacht. Die Spalten und die Anzahl der Zeilen,

die durch das Makro auf FarbCodes durchlaufen werden sollen, sowie der Name des

Tabellen-Registers kann natürlich geändert werden. Dafür muss das Makro analog angepasst werden.

Zur Bequemlichkeit könnte auch ein Button im Sheet angesiedelt werden, der nach Klick das Makro

ausführt.

Beispiel oder Grafik kann ich Dir nicht liefern, weil newbie (und daher technisch nicht möglich).

Wenn das für Dich hilfreich sein könnte, schreib' Deine Fragen einfach hier auf.

obos

Geschrieben

Hallo monopolis und obos,

danke für die raschen Antworten. Da hab ich was zu tun, wenn ich am Totensonntag zwangspausieren muss.

Wiessee

Geschrieben

@Wiessee,

ich möchte Dir auch noch eine alternative Lösung benennen, die mit einer

benutzerdefinierten Funktion arbeitet.

Der Vorteil besteht darin, dass für die Ermittlung der Farbcodes kein Makro ausgeführt werden muss.

Außerdem habe ich die konstante Festlegung von Spalten und den Tabellennamen durch eine

dynamische Lösung ersetzt.

zunächst die Funktion, welche ebenfalls in ein Modul kopiert wird:

Public Function obos_FarbCodes(adr As Range) As String
Dim nFarbCode As Integer

nFarbCode = Sheets(ActiveSheet.Name).Cells(adr.Row, adr.Column).Interior.ColorIndex
get_FarbCodes = IIf(nFarbCode >= 0, nFarbCode, "")
End Function

nun zur Nutzung:

wir unterstellen wieder, dass die Bemerkung in Spalte C steht, die Farbcodes in Spalte D

und wir uns aktuell in Zeile 2 befinden

1. wir schreiben in Zele D2 (wie bei einer Excel-Formel) =obos_FarbCodes(C2)

2. wir ziehen die Formel in der Spalte D2 runter, bis sie in allen Zeilen des gewünschten Datenbereichs erscheint

3. nun können wir Bemerkungen eingeben und die Füllfarbe festlegen.

zu beachten ist noch eine Besonderheit von benutzerdefinierten Funktionen.

a)

es klappt wie gewünscht, wenn wir erst die Farbe festlegen und danach einen Vermerk eintragen

(oder nachträglich die Farbe und den Text ändern)

b)

wenn der Vermerk bereits vorhanden ist und wir nur die Füllfarbe ändern, wird der FarbCode von

Excel nicht automatisch aktualisiert.

Doch gibt es dafür die Tastenkombination [Ctrl]+[Alt]+[F9], die alle Zellen in einem Rutsch aktualisiert,

bei denen nachträglich (nur) die Farbe geändert wurde.

Die Ausführungen zum Autofilter gelten weiterhin auch für diese Variante.

obos

Geschrieben

... Korrektur Flüchtigkeitsfehler ...

Ich hatte nachträglich den Namen der Funktion geändert und dabei vergessen, dass

ich die Änderung auch bei der Zuweisung des Return-Wertes anpassen muss.

Daher noch einmal der Quellcode korrigiert:

Public Function obos_FarbCodes(adr As Range) As String
Dim nFarbCode As Integer

nFarbCode = Sheets(ActiveSheet.Name).Cells(adr.Row, adr.Column).Interior.ColorIndex
obos_FarbCodes = IIf(nFarbCode >= 0, nFarbCode, "")
End Function

obos

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...