bedindgte formatierung + schleife

Bild

Betrifft: bedindgte formatierung + schleife von: Gabor
Geschrieben am: 11.04.2005 01:14:58

Hallo liebe Experten,
ich habe wieder einmal ein Problem bei dem ich nicht weiter komme.
Ich möchte gern in meiner Tabelle auf den Blättern 1 bis 20 folgende Formatierungen erreichen: wenn in Spalte Q (ab Zeile 4) der Wert 1 oder 2 steht soll die Zelle in Spalte N (selbe Zeile) eine rote Hintergrungfarbe annehmen, wenn der Wert in Q gleich 3 ist soll die Zelle in N einen grünen Hintergrund annehmen. Der Bereich beginnt in Zeile 4 und ist nach unten variabel.
Ich bin für jeden Hinweis dankbar.

Gabor

Bild


Betrifft: AW: bedindgte formatierung + schleife von: PeterW
Geschrieben am: 11.04.2005 02:10:07

Hallo Gabor,

klicke auf das Register des Blattes 1, drücke und halte die Shift-Taste und kliche auf das Register des Blattes 20. Sofern die Blätter nicht hintereinander stehen benutzte statt der Shift die STRG-Taste.

Klicke auf N4 - Format - Bedingte Formatierung - Formel ist =ODER(Q4=1;Q4=2) - Format festlegen - Hinzufügen - Formel ist Q4=3 - Format festlegen - OK
N4 ist noch immer ausgewählt! Klicke auf "Format übertragen" (den Pinsel) und dann STRG+Shift drücken und halten - Pfeiltaste runter.
Abschließend auf ein beliebiges Register klicken und sehen was bei Eingaben in Spalte Q passiert.

Gruß
Peter


Bild


Betrifft: AW: bedindgte formatierung + schleife von: Gabor
Geschrieben am: 11.04.2005 02:33:07

Peter,
danke für die schnelle Antwort (um diese Zeit). Kann man das Problem auch mit einem makro lösen. Die Zellen der Blätter 1 bis 20 werden bei jedem Durchlauf gelöscht mit allen Formatierungen und müssen erst am Ende aller Berechnungen neu formatiert werden.
Eine "Formatierungsschleife" für ein Blatte würde mir auch reichen - da kopiere ich sie halt in jedes Blatt rein.
Gabor


Bild


Betrifft: AW: bedindgte formatierung + schleife von: PeterW
Geschrieben am: 11.04.2005 12:52:57

Hallo Gabor,

natürlich geht das auch per Makro. Der Rekorder zeichnet das so auf:

Sub Makro1()
'
' Makro1 Makro
' Makro am 11.04.2005 aufgezeichnet
'
    With Range("N4")
        .FormatConditions.Delete
        .FormatConditions.Add Type:=xlExpression, Formula1:= _
        "=ODER(Q4=1;Q4=2)"
        .FormatConditions(1).Interior.ColorIndex = 3
        .FormatConditions.Add Type:=xlExpression, Formula1:="=Q4=3"
        .FormatConditions(2).Interior.ColorIndex = 4
        .Copy
        .PasteSpecial Paste:=xlPasteFormats
        Application.CutCopyMode = False
        Range(Range("N4"), Range("N4").End(xlDown)).Select
        .Select
    End With
End Sub

Aber warum löschst du die Zellen und nicht nur die Inhalte? Zeig mal deinen Code.

Gruß
Peter


Bild


Betrifft: AW: bedindgte formatierung + schleife von: Gabor
Geschrieben am: 11.04.2005 15:07:26

Peter,
ich habe jetzt die Farbformatierung auf "1 oder 2 in Q --> Zelle N wird rot" beschrenkt.
Die Schleife läuft ohne Probleme. Allerdings mußte ich den CODE 20x hintereinander einfügen (dafüt fehlt mir noch die Lösung.


Sub mark_ooc()
Dim i As Integer
'1
'ermittlung des Wertes in Q
    Sheets("1").Select
    Range("Q4").Select
    ActiveCell.FormulaR1C1 = _
        "=IF(RC[-3]<1,4,IF(auswertung!R10C4=RC[-4],IF(auswertung!R9C2<RC[-3],1,IF(auswertung!R11C2>RC[-3],2,3)),5))"
    Range("Q4").Select
Selection.AutoFill Destination:=Range("Q4:Q" & Cells(Rows.Count, 1).End(xlUp).Row), Type:=xlFillDefault
'Farbformatierung von N
For i = Cells(Rows.Count, 4).End(xlUp).Row To 1 Step -1
If Cells(i, 14) <> "" And Cells(i, 17) = 1 Or Cells(i, 17) = 2 Then Cells(i, 14).Interior.ColorIndex = 3
Next i
    Range("E2").Select
End Sub


Die gesamten Zellen werden in einen vorhergehenden Makroschritt gelöscht.
Gabor


Bild


Betrifft: AW: bedindgte formatierung + schleife von: PeterW
Geschrieben am: 11.04.2005 17:02:30

Hallo Gabor,

wenn der von dir gepostete Code 20 mal laufen soll (für Blatt 1 bis 20) dann leg eine Schleife drum:

Sub mark_ooc()
Dim i As Integer
Dim iCount As Integer
'1
'ermittlung des Wertes in Q
For iCount = 1 To 20
    With Sheets(CStr(iCount))
        .Range("Q4").FormulaR1C1 = _
        "=IF(RC[-3]<1,4,IF(auswertung!R10C4=RC[-4],IF(auswertung!R9C2<RC[-3],1,IF(auswertung!R11C2>RC[-3],2,3)),5))"
        .Range("Q4").AutoFill Destination:=.Range("Q4:Q" & .Cells(Rows.Count, 1).End(xlUp).Row), Type:=xlFillDefault
        'Farbformatierung von N
        For i = .Cells(Rows.Count, 4).End(xlUp).Row To 1 Step -1
            If .Cells(i, 14) <> "" And .Cells(i, 17) = 1 Or .Cells(i, 17) = 2 Then .Cells(i, 14).Interior.ColorIndex = 3
        Next i
    End With
Next
End Sub

Was dein Code allerdings noch mit bedingter Formatierung zu tun hat kann ich nicht nachvollziehen.

Gruß
Peter


 Bild

Beiträge aus den Excel-Beispielen zum Thema "bedindgte formatierung + schleife"