Hallo zusammen,
ich bräuchte mal wieder eure Hilfe.
Folgendes in Tabelle 1:
A B C D E F G H
1
2 1 0 0 0 1000 1000
3 1 1 0 0 1100 1100
4 2 0 0 0 2000 2000
5 2 2 0 0 2200 2200
6 2 2 5 0 2250 2250
7 3 0 0 0 3000 3000
8 0 0 0 0 0000 0000
9 0 0 0 0 0000 0000
10 0 0 0 0 0000 0000
Formel in E2: =Wert(H2)
Formel in H2: =verketten(A2;B2;C2;D2)
In Tabelle 2:
A1 1000 (Zellhintergrund pink - Farbindex 7)
A2 2000 (Zellhintergrund orange - Farbindex 44)
A3 3000 (Zellhintergrund gelb - Farbindex 6)
A4 4000 (Zellhintergrund grün - Farbindex 4)
Die Aufgabe:
Die Zellen in Spalte E von Tabelle 1 sollen bei
Übereinstimmung mit der Kombination aus
A bis D die Hintergrundfarbe erhalten, wie in
Tabelle 2 definiert.
Das habe ich mit folgendem Code versucht:
Option Explicit
Private Sub Worksheet\_Change(ByVal Target As Range)
Dim vRow As Variant
If Target.Column 5 Then Exit Sub
If Target.Cells.Count \> 1 Then
If WorksheetFunction.CountA(Target) = 0 Then
Target.Interior.ColorIndex = xlColorIndexNone
Exit Sub
Else
Exit Sub
End If
End If
With Worksheets("Tabelle2")
If IsEmpty(Target) Then
Target.Interior.ColorIndex = xlColorIndexNone
Else
vRow = Application.Match(Target.Value, .Columns(1), 0)
If Not IsError(vRow) Then
Target.Interior.ColorIndex = .Cells(vRow, 1).Interior.ColorIndex
Else
Target.Interior.ColorIndex = xlColorIndexNone
End If
End If
End With
End Sub
Das funktioniert aber nur, wenn ich in E2 z.B. direkt die
das Ergebnis der Zahlenkombination aus A bis D eingebe,
im Beispiel 1000, weil VBA das Ergebnis der Formel nicht
mitbekommt.
Gibt es einen anderen Weg?
Bedingte Formatierung scheidet wohl aus, weil nur 3
Kriterien möglich?
Hier die Beispieldatei:
http://www.file-upload.net/download-2865050/Farbzuwe…
Vielen Dank für jede Hilfe.
Gruß
Rolf
Die Zellen in Spalte E von Tabelle 1 sollen bei
Übereinstimmung mit der Kombination aus
A bis D die Hintergrundfarbe erhalten, wie in
Tabelle 2 definiert.
Das funktioniert aber nur, wenn ich in E2 z.B. direkt die
das Ergebnis der Zahlenkombination aus A bis D eingebe,
im Beispiel 1000, weil VBA das Ergebnis der Formel nicht
mitbekommt.
http://www.file-upload.net/download-2865050/Farbzuwe…
Hallo Rolf,
was genau soll denn Vba mitbekommen, bzw. auf was genau soll es reagieren?
Und Änderungen der Formelergebnisse, du meinst die in H?, kriegt Vba nicht mit, wenn mußt du A,B,C,D „überwachen“ und wenn in A1 steht: =X1/7, dann mußt du X,B,C,D überwachen…
(Ggfs. reicht auch das Worksheet_Calculate-Ereignis zu benutzen, aber das sehe ich seltenst, hat wahrscheinlich mir unbekannte Gründe, warum man das nicht nimmt, vielleicht Performance o.ä.)
Gruß
Reinhard
Die Zellen in Spalte E von Tabelle 1 sollen bei
Übereinstimmung mit der Kombination aus
A bis D die Hintergrundfarbe erhalten, wie in
Tabelle 2 definiert.
Das funktioniert aber nur, wenn ich in E2 z.B. direkt die
das Ergebnis der Zahlenkombination aus A bis D eingebe,
im Beispiel 1000, weil VBA das Ergebnis der Formel nicht
mitbekommt.
http://www.file-upload.net/download-2865050/Farbzuwe…
Moin Reinhard
danke für Dein Interesse.
was genau soll denn Vba mitbekommen, bzw. auf was genau soll
es reagieren?
Wenn ich in E15 z.B. den Wert 4000 eingebe, wird die Zelle
wunschgemäß grün. Gebe ich aber von A - D 15 die
Kombination 4 0 0 0 ein, steht in E15 zwar auch 4000 (über die
hinterlegte Formel =Wert(H15) ), aber die Zelle wird nicht grün,
weil VBA „es nicht mitbekommen hat“.
Und Änderungen der Formelergebnisse, du meinst die in H?,
nein, in E
kriegt Vba nicht mit, wenn mußt du A,B,C,D „überwachen“ und
wenn in A1 steht: =X1/7, dann mußt du X,B,C,D überwachen…
Ähm - wie?
(Ggfs. reicht auch das Worksheet_Calculate-Ereignis zu
benutzen,
hab ich versucht mit „Private Sub Worksheet_Calculate()“
hat aber nicht geklappt.
Kannst Du etwas genauer werden?
Gruß
Rolf
Moin Rolf,
http://www.file-upload.net/download-2865050/Farbzuwe…
Und Änderungen der Formelergebnisse, du meinst die in H?,
nein, in E
Sorry, mein Fehler, hab in E2 wohl gleich mal die Formel mit 1000 überschrieben um zu testen 
kriegt Vba nicht mit, wenn mußt du A,B,C,D „überwachen“ und
wenn in A1 steht: =X1/7, dann mußt du X,B,C,D überwachen…
Ähm - wie?
so z.B.:
Option Explicit
'
Private Sub Worksheet\_Change(ByVal Target As Range)
Dim lngRow As Long
Set Target = Intersect(Target, Range("A:smiley:"))
If Target Is Nothing Then Exit Sub
With Worksheets("Tabelle2")
If Application.CountIf(.Columns(1), Cells(Target.Row, 5).Value) Then
lngRow = Application.Match(Cells(Target.Row, 5).Value, .Columns(1), 0)
Cells(Target.Row, 5).Interior.ColorIndex = .Cells(lngRow, 1).Interior.ColorIndex
Else
Cells(Target.Row, 5).Interior.ColorIndex = xlColorIndexNone
End If
End With
End Sub
Gruß
Reinhard
Danke 
Hallo Reinhard,
hast mich mal wieder gerettet.
*artigdankesag*
)
Gruß und schönen Tag
Rolf