Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Formatierung mit mehr als 3 Bedingungen

Formatierung mit mehr als 3 Bedingungen
28.07.2005 17:32:08
andi
Hi,
möchte eine bedingte Formatierung mit mehr als 3 Bedingungen, genauer gesagt mit 4 per VBA realisieren.
Abhängig von den Werten in den Zeilen 6,7,8. In Zeile 6 steht beispielsweise der Wert 60 und in Zeile 7 der Wert 0,1 und in Zeile 8 der Wert 0,2.
Jetzt möchte ich in den Zeilen 10-60 die Werte formatieren: ist der Wert zwischen 60,01 und 59,08 grün färben. Ist der Zellwert 20% anders als die obere oder untere Grenze soll er orange sein, ist er weiter außerhalb soll er rot sein.
Habe folgendes Makro gefunden:

Private Sub Worksheet_Change(ByVal Target As Range)
With Target
Select Case .Value
Case 1: .Interior.ColorIndex = 3          'rot
Case "test": .Interior.ColorIndex = 5     'blau
'usw.
Case Else: .Interior.ColorIndex = xlNone
End Select
End With
End Sub

Möchte aber nicht das Worksheet_Change Ereignis, sondern abhängig vom Zellwert prüfen.
Mein größtes Problem: Die Werte in Spalte 10-60 prüfen. Die Werte stehen schon in der Mappe drinnen.
Wäre sehr nett, wenn mir jemand helfen könnte.
Gruß Andreas
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formatierung mit mehr als 3 Bedingungen
28.07.2005 18:34:15
Berber
Hallo Anreas,
kopiere den Code in ein Modul, VBA Editor,
und führe ihn aus.
&ltpre&gt
Sub pruefenInhalt()
For zeile = 6 To 8 'Zeile 6,7,8
For spalte = 10 To 60 'Spalte
pruefwert = Sheets(1).Cells(zeile, spalte).Value
Select Case pruefwert
Case 59.08 To 60.01
Sheets(1).Cells(zeile, spalte).Interior.ColorIndex = 50
Case 47.26 To 59.07, 60.02 To 72.01
Sheets(1).Cells(zeile, spalte).Interior.ColorIndex = 46
Case Empty, "", 0, Null
Sheets(1).Cells(zeile, spalte).Interior.ColorIndex = xlNone
Case Is &lt 47.26, Is &gt 72.01
Sheets(1).Cells(zeile, spalte).Interior.ColorIndex = 3
End Select
Next
Next
End Sub&lt/pre&gt
Bitte prüfen ob die Toleranzbereiche 20% stimmen, sonst anpassen.
Anzeige
AW: Formatierung mit mehr als 3 Bedingungen
28.07.2005 19:14:24
andi
Hi Berber,
danke für deine Antwort. Habe das bis jetzt für eine Spalte:
Public

Sub Format()
Dim i As Integer
With Sheets("Daten")
For i = 10 To 60 'Zeilen 10 bis 60 durchgehen
'Werte an Variablen übergeben
wert = Cells(6, 4).Value
minTol = wert + Cells(8, 4).Value
maxTol = wert + Cells(7, 4).Value
orange_max = Cells(7, 4).Value * 20 / 100 * -1
orange_min = Cells(8, 4).Value * 20 / 100 * -1
If Cells(i, 4).Value <= maxTol And Cells(i, 4).Value >= minTol Then
Cells(i, 4).Font.ColorIndex = 10 'entsprechende Zelle grün einfärben
End If
If Cells(i, 4).Value <> maxTol And Cells(i, 4).Value <> minTol Then
Cells(i, 4).Font.ColorIndex = 3 'entsprechende Zelle rot einfärben
End If
If Cells(i, 4).Value <= maxTol And Cells(i, 4).Value >= maxTol - orange_max Then
Cells(i, 4).Font.ColorIndex = 46 'entsprechende Zelle orange einfärben
End If
If Cells(i, 4).Value <= minTol And Cells(i, 4).Value >= minTol - orange_min Then
Cells(i, 4).Font.ColorIndex = 46 'entsprechende Zelle orange einfärben
End If
Next i
End With
End Sub

Leider funktioniert das nicht, weil am Schluss alle orangen Formatierungen die grünen Überschreiben...
Übrigens: In Zeile 6-8 stehen die Zellwerte drinnen. Diese sollen nicht formatiert werden.
Wie kann ich da dein select case einbauen? Die 2 Schleife für die Spalten bekomme ich dann auch noch hin...
Gruß Andi
Anzeige
AW: Formatierung mit mehr als 3 Bedingungen
28.07.2005 19:59:11
Berber
Hallo Andreas,
sorry, aber da komme ich nicht ganz mit
wert = Cells(6, 4).Value
minTol = wert + Cells(8, 4).Value
maxTol = wert + Cells(7, 4).Value
orange_max = Cells(7, 4).Value * 20 / 100 * -1
orange_min = Cells(8, 4).Value * 20 / 100 * -1
welche werte stehen denn als Bsp. in D6,D7,D8 bitte mit Vorzeichen wenn negativ.
Gruss
Berber
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige