wiessee Geschrieben November 17, 2008 Geschrieben November 17, 2008 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 Textedarstellen.Weiß jemand Rat?Wiessee
Monopolis Geschrieben November 18, 2008 Geschrieben November 18, 2008 (bearbeitet) Moin wiessee,dies ist über 'Bedingte Formatierung' mit Hilfsspalten möglich, allerdingshast 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:Buchhaltung - SPIELEREIEN MIT EXCEL - Grüße, Monopolis. bearbeitet November 19, 2008 von Nachtfalke Linksetzung
obos Geschrieben November 19, 2008 Geschrieben November 19, 2008 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, "") NextEnd SubIch unterstelle das folgende Szenario:a) in Spalte C soll sich das Bemerkungsfeld befinden, was Du farblich markieren willstb) Spalte D reservieren wir für eine Spalte, in welche die Farbcodes geschrieben werdenc) wir markieren einen Datenbereich einschließlich der Spaltenüberschriften und aktivieren über Menü: Daten - Filter - Autofilternun das "Kochrezept" für die Nutzung:1. Alt+F11 drücken, um in den VBA-Bereich zu kommen2. Menü - Einfügen - Modul3. den obigen Code-Block in die Zwischenablage kopieren und im neuen Modul einfügen4. speichern und VBA-Fenster schließen5. Alt+F8 drücken und das Makro show_FarbCodes markieren und auf [Ausführen] klicken6. 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 angezeigtDas 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
wiessee Geschrieben November 19, 2008 Autor Geschrieben November 19, 2008 Hallo monopolis und obos,danke für die raschen Antworten. Da hab ich was zu tun, wenn ich am Totensonntag zwangspausieren muss.Wiessee
obos Geschrieben November 20, 2008 Geschrieben November 20, 2008 @Wiessee,ich möchte Dir auch noch eine alternative Lösung benennen, die mit einerbenutzerdefinierten 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 einedynamische 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 Dund wir uns aktuell in Zeile 2 befinden1. 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 erscheint3. 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
obos Geschrieben November 20, 2008 Geschrieben November 20, 2008 ... Korrektur Flüchtigkeitsfehler ...Ich hatte nachträglich den Namen der Funktion geändert und dabei vergessen, dassich 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 Functionobos
Recommended Posts
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 erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden