Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
264to268
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
264to268
264to268
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Mehr als 3 bedingte Formate

Mehr als 3 bedingte Formate
08.06.2003 12:26:19
Gunther
Hallo Forum,
ich suche eine Möglichkeit, ähnlich wie bei Gültigkeit, eine Liste für bedingte Formate zu erstellen. Es sollte dann so sein,
dass bei Änderungen in einer Tabelle die Liste durchsucht wird und bei Übereinstimmung die zugeordnete Farbe verwendet wird. Das
wird, wenns überhaupt geht, nur mit Makro zu machen sein. Leider reichen meine Kenntnisse da nicht aus.
Freue mich jetzt schon auf Vorschläge.
Liebe Grüße Gunther

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Mehr als 3 bedingte Formate
08.06.2003 12:29:37
Georg_Zi

Hallo Günther

falls es sich um Eingaben handelt schaue hier
https://www.herber.de/forum/archiv/220to224/t221593.htm#221595


Gruß Hajo

Der Code wurde getestet unter Betriebssystem XP Pro und Excel Version XP SBE.
Bitte kein Mail, Probleme sollen im Forum gelöst werden.

Microsoft MVP für Excel


Re: Mehr als 3 bedingte Formate
08.06.2003 12:29:45
Kl@us-M.

Hallo Gunther,
schau mal hier:
http://www.kmbuss.de/Excel-CD/xwork012.htm
Fruss as dem Hunsrück
Klaus-Martin

Anzeige
Danke, aber...
08.06.2003 12:38:13
Gunther

Hallo Klaus-Martin,
diese SelectCase- Geschichte ist aber nicht flexibel genug. Wie ich schon schrieb, so in der Art wie eine Liste bei Gültigkeit
schwebt mir vor.
Gruß Gunther

Danke, aber...
08.06.2003 12:39:13
Gunther

Hallo Georg,
diese SelectCase- Geschichte ist aber nicht flexibel genug. Wie ich schon schrieb, so in der Art wie eine Liste bei Gültigkeit
schwebt mir vor.
Gruß Gunther

Re: Danke, aber...
08.06.2003 12:44:12
Georg_Zi

Hallo Günther

da habe ich leider keinen Vorschlag mehr. Mit der von mir vorgeschlagenen Lösung kannst Du 56 Farben einstellen und mehr Farben kann Excel auch nicht Verwalten.

Ansonsten mußt Du Deine Forderungen genauer beschreiben.

Gruß Hajo

Der Code wurde getestet unter Betriebssystem XP Pro und Excel Version XP SBE.
Bitte kein Mail, Probleme sollen im Forum gelöst werden.

Microsoft MVP für Excel

Anzeige
Re: Danke, aber...
08.06.2003 13:15:32
Gunther

Hallo Georg,
ich dachte, ich hätte mich genau ausgedrückt, ich möchte keine
starre SelectCase- Abfrage, sondern eine Liste, in der ich die Werte und die Farben selbst definieren kann.
Gruß Gunther

Re: Mehr als 3 bedingte Formate
08.06.2003 13:17:01
L.Vira

Interessantes Problem, probier das mal:

''Erstellt von L.Vira zur freien Verwendung(ohne Garantie)
''--------------------------------------------------------------
''Theoretisch kann die ganze Spalte A genutzt werden, praktisch
''ist das aber sinnlos, weil interaktiv nur 40 Farben zur
''Verfügung stehen. Man kann eine Farbe aber auch mehrfach
''verwenden, wenn das gewünscht ist und Sinn macht.
''Das Makro: Farben_eintragen ausführen. Es wird ein Blatt
''mit dem Namen Farbgültigkeit erzeugt, falls es noch nicht
''vorhanden ist.
''In Spalte A, beginnend in A1, die Werte eintragen, die bei
''Eingabe in eine Tabelle eine bestimmte Farbe erhalten sollen.
''In der Spalte B die Füllfarbe der Zellen in der gewünschten
''Farbe formatieren. Beides muss lückenlos sein.
''Nochmals das Makro: Farben_eintragen ausführen.
''---------------------------------------------------------------
''In die Tabellenmodule, in denen das wirksam werden soll
''denn folgenden Code kopieren:
''---------------------------------------------------------------
'Option Explicit
'Private Sub Worksheet_Change(ByVal Target As Range)
'If Target.Count > 1 Then Exit Sub
'''Für die Füllfarbe
'Target.Interior.ColorIndex = Col_Index(Target.Value)
'''Für die Schriftfarbe
''Target.Font.ColorIndex = Col_Index(Target.Value)
'End Sub
''---------------------------------------------------------------

''Diesen Code in ein Standardmodul kopieren:
Option Explicit
Const FARBSHEET As String = "Farbgültigkeit"
Function Col_Index(Wert As Variant) As Byte
Dim F As Long, arrWert As Variant, T As Variant, lZ As Long
lZ = 65536
If Sheets(FARBSHEET).[a65536] = "" Then
lZ = Sheets(FARBSHEET).[a65536].End(xlUp).Row
End If

''Werte in Array, Zugriff bedeutend schneller!
arrWert = Sheets(FARBSHEET).Range("A1:A" & lZ)

For Each T In arrWert
F = F + 1
'Wenn Groß- Kleinschreibung ignoriert werden soll:
' If UCase(T) = UCase(Wert) Then
' Col_Index = Sheets(FARBSHEET).Cells(F, 2)
' End If
'Wenn Groß- Kleinschreibung beachtet werden soll:
If T = Wert Then
Col_Index = Sheets(FARBSHEET).Cells(F, 2)
End If
Next
End Function
Sub Farben_eintragen()
Dim z As Long, lZ As Long, Wsh As Worksheet, bolFound As Boolean

''Testen, ob Blatt schon existiert
For Each Wsh In ActiveWorkbook.Worksheets
If UCase(Wsh.Name) = UCase(FARBSHEET) Then
bolFound = True
Exit For
End If
Next

''Wenn nicht, dann erzeugen
If Not bolFound Then
Set Wsh = Worksheets.Add(before:=Sheets(1))
Wsh.Name = FARBSHEET
Set Wsh = Nothing
End If

lZ = 65536
If Sheets(FARBSHEET).[a65536] = "" Then
lZ = Sheets(FARBSHEET).[a65536].End(xlUp).Row
End If

For z = 1 To lZ
Sheets(FARBSHEET).Cells(z, 2) = Sheets(FARBSHEET).Cells(z, 2).Interior.ColorIndex
Next

End Sub

Anzeige
Re: Farbe
08.06.2003 13:19:14
Georg_Zi

Hallo Günther

ich habe den Eindruck, wenn zwei das gleiche geantwortet haben muß es wohl nicht so klar beschrieben sein.

Für mich ist der Beitrag erledigt.

Gruß Hajo

Der Code wurde getestet unter Betriebssystem XP Pro und Excel Version XP SBE.
Bitte kein Mail, Probleme sollen im Forum gelöst werden.

Microsoft MVP für Excel

Re: Farbe
08.06.2003 13:23:05
Gunther

Hallo Georg,
unter diesen Umständen verzichte ich auch gern auf deine Hilfe.
Nächstens stelle ich nur noch eine Frage, die du verstehst.
Gruß Gunther

Anzeige
Danke und Zusatzfrage
08.06.2003 13:30:15
Gunther

Hallo L.Vira,
das ist genau das, was ich mir vorgestellt habe. Wie kann ich
das jetzt möglichst in allen Mappen verwenden, ohne das jedesmal
in die Mappe zu kopieren? Gibts da was?
Gruß Gunther

Re: Danke und Zusatzfrage
08.06.2003 13:36:20
L.Vira

Du kannst das z.B. in deine PERSONL.XLS einbinden oder in einem Add- In kapseln. Wahrscheinlich wirst du das alleine nicht hinbekommen? Falls du noch Hilfe brauchst, erst heute Abend.

Ach ja, noch was...
08.06.2003 13:40:27
L.Vira

Das ist natürlich keine "echte" bedingte Formatierung, funzt nur bei Änderungen, die eingegeben werden. Es ginge auch noch anders, aber das ist mir zu aufwändig.

Re: Danke und Zusatzfrage
08.06.2003 14:38:36
Gunther

Hallo L.Vira,
das mit der persönlichen hab ich hinbekommen. Die Lösung reicht schon, wenn mich das aber auch interressieren würde was du meinst mit es geht auch anders. Ich schau abends nochmal vorbei.
Gruß Gunther

Anzeige
Re: Danke und Zusatzfrage
08.06.2003 20:48:59
L.Vira

Ich meinte damit, das auch noch auf das Calculate- Ereignis auszudehnen. Der Haken ist, dass wenn der Zellbereich sehr
groß ist, die Berechnung ggf., je nach Rechnerleistung , dauern kann. Kannst es ja mal probieren.

''Erstellt von L.Vira zur freien Verwendung(ohne Garantie)
''--------------------------------------------------------------
''Theoretisch kann die ganze Spalte A genutzt werden, praktisch
''ist das aber sinnlos, weil interaktiv nur 40 Farben zur
''Verfügung stehen. Man kann eine Farbe aber auch mehrfach
''verwenden, wenn das gewünscht ist und Sinn macht.
''Das Makro: Farben_eintragen ausführen. Es wird ein Blatt
''mit dem Namen Farbgültigkeit erzeugt, falls es noch nicht
''vorhanden ist.
''In Spalte A, beginnend in A1, die Werte eintragen, die bei
''Eingabe in eine Tabelle eine bestimmte Farbe erhalten sollen.
''In der Spalte B die Füllfarbe der Zellen in der gewünschten
''Farbe formatieren. Beides muss lückenlos sein.
''Nochmals das Makro: Farben_eintragen ausführen.
''---------------------------------------------------------------
''In die Tabellenmodule, in denen das wirksam werden soll
''denn folgenden Code kopieren:
''---------------------------------------------------------------
'Option Explicit
'Private Sub Worksheet_Calculate()
'Dim Bereich As Range, C As Range, MSG As Integer
'If TypeName(Selection) <> "Range" Then Exit Sub
'Set Bereich = ActiveSheet.UsedRange
'If Bereich.Cells.Count > 1000 Then
' MSG = MsgBox("Der zu berechnende Bereich ist sehr groß!" & Chr(10) & _
' "Die Berechnung kann länger dauern, dennoch weiter? ", 32 + 4, "wills wissen...")
' If MSG = vbNo Then Exit Sub
'End If
'For Each C In Bereich
' On Error GoTo ENDE 'Blatt Farbgültigkeit nicht vorhanden
' C.Interior.ColorIndex = Col_Index(C.Value)
'Next
'ENDE:
'End Sub
'Private Sub Worksheet_Change(ByVal Target As Range)
'If Target.Count > 1 Then Exit Sub
'''Für die Füllfarbe
'Target.Interior.ColorIndex = Col_Index(Target.Value)
'''Für die Schriftfarbe
''Target.Font.ColorIndex = Col_Index(Target.Value)
'End Sub


''---------------------------------------------------------------

''Diesen Code in ein Standardmodul kopieren:
Option Explicit
Const FARBSHEET As String = "Farbgültigkeit"
Function Col_Index(Wert As Variant) As Byte
Dim F As Long, arrWert As Variant, T As Variant, lZ As Long
lZ = 65536
If Sheets(FARBSHEET).[a65536] = "" Then
lZ = Sheets(FARBSHEET).[a65536].End(xlUp).Row
End If

arrWert = Sheets(FARBSHEET).Range("A1:A" & lZ)

For Each T In arrWert
F = F + 1
'Wenn Groß- Kleinschreibung ignoriert werden soll:
' If UCase(T) = UCase(Wert) Then
' Col_Index = Sheets(FARBSHEET).Cells(F, 2)
' End If
'Wenn Groß- Kleinschreibung beachtet werden soll:
If T = Wert Then
Col_Index = Sheets(FARBSHEET).Cells(F, 2)
End If
Next
End Function
Sub Farben_eintragen()
Dim z As Long, lZ As Long, Wsh As Worksheet, bolFound As Boolean

''Testen, ob Blatt schon existiert
For Each Wsh In ActiveWorkbook.Worksheets
If UCase(Wsh.Name) = UCase(FARBSHEET) Then
bolFound = True
Exit For
End If
Next

''Wenn nicht, dann erzeugen
If Not bolFound Then
Set Wsh = Worksheets.Add(before:=Sheets(1))
Wsh.Name = FARBSHEET
Set Wsh = Nothing
End If

lZ = 65536
If Sheets(FARBSHEET).[a65536] = "" Then
lZ = Sheets(FARBSHEET).[a65536].End(xlUp).Row
End If

For z = 1 To lZ
Sheets(FARBSHEET).Cells(z, 2) = Sheets(FARBSHEET).Cells(z, 2).Interior.ColorIndex
Next

End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige