Autor
|
Thema: Bedingte Formatierung (3087 mal gelesen)
|
Kelpie Mitglied Sozialpädagogin
Beiträge: 32 Registriert: 20.10.2004
|
erstellt am: 20. Okt. 2005 10:44 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe eine Frage zur bedingten Formatierung: Ich muss Teilnehmerinnendaten verwalten (Krankmeldungen, Urlaub, Freistellung, unentschuld. Fehlen etc). Dafür habe ich für jede TN ein separates Tabellenblatt mit Jahreskalender, in die jeweils ein Buchstabe eingetragen wird (also z.B. F bei Freistellung, K = Krank, O = unentschuldigt, etc). Ich möchte zwecks der Übersicht die versch. Buchstaben unterschiedlich einfärben. Da ich min. 5 verschiedene Kategorien habe, komme ich mit den drei Bedingungsmöglichkeiten, die mir Excel bei der bedingten Formatierung anbietet, nicht hin. Die einfache bed. Formatierung (z.B. Zellwert = "F" also grüne Schrift) ist kein Problem, aber wie kann ich mehr als 5 verschiedene Bedingungen einstellen, bzw. mehrere Buchstaben in einer Bedingungszeile zusammenfassen? und/and/+ scheint nicht zu gehen. Danke für Tipps, Bettina
------------------ ~~~~~~~~~~~~~~~~~~~~~~~~~ "Whenever you find yourself on the side of the majority, it's time to pause and reflect." - Mark Twain (1835 - 1910) ~~~~~~~~~~~~~~~~~~~~~~~~~ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
startrek Moderator Architekt
Beiträge: 1361 Registriert: 13.02.2003 .
|
erstellt am: 20. Okt. 2005 11:28 <-- editieren / zitieren --> Unities abgeben: Nur für Kelpie
Hallo Bettina, bei 3 bed. Formatierungen ist Sense;-) Für 4 und mehr dann mit Makro, hier mal zum Testen für nur ein Tabellenblatt, Tabellenreiter > RMT > Code anzeigen, dahinein kopieren:
Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) Dim i%, arr(4, 1) arr(0, 0) = "F": arr(0, 1) = 3 arr(1, 0) = "K": arr(1, 1) = 4 arr(2, 0) = "O": arr(2, 1) = 5 arr(3, 0) = "U": arr(3, 1) = 6 arr(4, 0) = "X": arr(4, 1) = 7 On Error Resume Next If Target.Column = 2 Then 'Spalte B For i = 0 To UBound(arr) If Target.Value = arr(i, 0) Then Target.Font.ColorIndex = arr(i, 1) Exit For End If Next End If End Sub
Das Array, Buchstaben & Farbnummern kannst Du Dir anpassen, oder erweitern.Gruss Nancy Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Kelpie Mitglied Sozialpädagogin
Beiträge: 32 Registriert: 20.10.2004
|
erstellt am: 20. Okt. 2005 19:50 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von startrek: bei 3 bed. Formatierungen ist Sense;-)
Wie blöd ist das denn? Ach ... was beschwer ich mich überhaupt ... Axel meinte übrigens gleich, dass ganz bestimmt Nancy die Antwort weiß und gleich antwortet ... also Danke! Wir haben übrigens ganz fest vor, doch noch zu kommen!! Zitat:
Für 4 und mehr dann mit Makro, hier mal zum Testen für nur ein Tabellenblatt ...
Ich werde mir das an der Arbeit zu Gemüte führen und dann mal wieder die Geschäftsführung in Erstaunen versetzen, was ich alles kann *lach*. Ich melde dann Vollzug, danke, Bettina ------------------ ~~~~~~~~~~~~~~~~~~~~~~~~~ "Whenever you find yourself on the side of the majority, it's time to pause and reflect." - Mark Twain (1835 - 1910) ~~~~~~~~~~~~~~~~~~~~~~~~~ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
startrek Moderator Architekt
Beiträge: 1361 Registriert: 13.02.2003 .
|
erstellt am: 20. Okt. 2005 20:59 <-- editieren / zitieren --> Unities abgeben: Nur für Kelpie
Hi Bettina, sorrysorry, grade nochmal gelesen und festgestellt dass ich Oberkäääääse geschrieben habe bei dem Code und 'der gehört hinters Tabellenblatt.' Das ist vollkommen falsch, der gehört da nämlich nicht hin. Irgendwie verkopiert oder so ...;-( Also, bevor Du morgen probierst und es klappt nicht, der Code der oben steht, gehört ins Klassemodul 'Diese Arbeitsmappe' und gilt damit für alle Blätter in deiner Mappe. Soll der nur in einer bestimmten Tabelle laufen, dann nimm sowas (der gehört jetzt aber wirklich in das Codefenster der Tabelle) ;-)
Code:
Private Sub Worksheet_Change(ByVal Target As Range) Dim i%, arr(4, 1) arr(0, 0) = "F": arr(0, 1) = 3 arr(1, 0) = "K": arr(1, 1) = 4 arr(2, 0) = "O": arr(2, 1) = 5 arr(3, 0) = "U": arr(3, 1) = 6 arr(4, 0) = "X": arr(4, 1) = 7 On Error Resume Next If Target.Column = 2 Then 'Spalte B For i = 0 To UBound(arr) If Target.Value = arr(i, 0) Then Target.Font.ColorIndex = arr(i, 1) Exit For End If Next End If End Sub
Nochmal sorry für den Lapsus & die Verwirrung, Du kriegtst das aber sicher gebacken, wenn nicht nochmal fragen, oder Axel, er kennt sich mit so Sachen wie Reaktoren auch aus *feix* ;;;-))))Achja nochwas, bin nicht so der Formelkünstler, vielleicht hat ja auch noch wer 'ne clevere Alternative ohne VBA. Zum andren ..., das wäre echt ungemein schön:-) lieben Gruss Nancy Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|