Bedingte Formatierung?
#1
Hallo zusammen,

da mir hier schon bei einem Problem sehr geholfen worden ist und es auch funktioniert.
Hätte ich noch eine andere Frage.

Ich konnte es bis dato nicht lösen bzw. ob dies überhaupt geht wie ich mir das vorstelle.

Die Testdatei ist mal mit angehängt um es besser verstehen zu können was ich meine.

Kurz zu dem Fall:
Ich hab eine Spalte mit Start Datum dies ist so wie in der Tabelle kopiert bzw so erhalte ich die Daten.
Nun möchte ich das sobald ein anderes Datum also +1 Tag einen fetten Unterstrich gezogen wird um so gleich sehen zu können was bis zu dem heutigen Tag, sowie die nächsten Tage ansteht.
Ich hoffe ihr könnt mir folgen 😊

Ich hoffe mir kann jemand bei meinem Vorhaben helfen.
Bei Fragen stehe ich natürlich gerne zur Verfügung


Angehängte Dateien
.xlsx   Test.xlsx (Größe: 11,09 KB / Downloads: 5)
Antworten Top
#2
Hola,
als weitere Formel in der bed. Formatierung:
Code:
=$C3<>$C4
Gruß,
steve1da
Antworten Top
#3
Könntest du mir das anhand von dem Beispiel erklären?
Ich bekomm es leider nicht hin o.O
Antworten Top
#4
Du hast doch schon mehrere bed. Formatierungen nach genau dem Muster in der Datei?
A3:E24 markieren, meine Formel einsetzen, Format wählen, fertig.
Antworten Top
#5
ah jetzt geht es, perfekt Ich dank dir.

würde das ganze auch mit VBA gehen das wirklich eine Fette Linie einzogen werden kann?
Antworten Top
#6
Bestimmt, ist aber nicht mein Gebiet.
Antworten Top
#7
Ja nicht schlimm,

Vllt hat ja noch jemand einen Ansatz oder Lösung mit VBA für die dicke Linie. 👌

Dennoch dank dir schonmal dafür.
Antworten Top
#8
Moin!

Leider hab ich nicht verstanden ob du NEBEN deiner bedingten Formatierung die Datumstrennung haben willst oder ob das setzen der bedingten Formatierung per VBA passieren soll.
Hier also beides:

(ZELLEN = Grün hab ich in 1 Bedingung zusammengefasst, Reihenfolge angepasst, sodass "GS" alle Zellen auf Grün setzt, unabhängig von Spalte "B")
Leider lässt sich in der bedingten Formatierung keine dicke Linie einfügen, daher hab ich die dünne Linie in rot gewählt.

Code:
Sub Makro1()
'
' Makro1 Makro
'

    Dim rws As Range
   
    Range("A:E").FormatConditions.Delete
   
    Set rws = Range("C3").CurrentRegion
    Set new_rws = rws.Offset(1, 0).Resize(rws.Rows.Count - 1, rws.Columns.Count)
    With new_rws
        Set n_FC = .FormatConditions.Add(Type:=xlExpression, Formula1:="=UND($C3<>$C4;$C4<>"""")")
        With n_FC.Borders(xlBottom)
            .LineStyle = xlContinuous
            .Weight = 2
            .ColorIndex = 3
        End With
        n_FC.StopIfTrue = False
    End With
       
    With Range("A3:E24")
        Set n_FC = .FormatConditions.Add(Type:=xlExpression, Formula1:="= $C3 = HEUTE()")
        n_FC.Interior.Color = 8544277
        n_FC.StopIfTrue = False
    End With
   
    With Range("A3:E24")
        Set n_FC = .FormatConditions.Add(Type:=xlExpression, Formula1:="=oder($B3=""erledigt"";$A3=""GS"")")
        n_FC.Interior.Color = 5296274
        n_FC.StopIfTrue = True
    End With
   
    With Range("A3:E24")
        Set n_FC = .FormatConditions.Add(Type:=xlExpression, Formula1:="=$B3=""Nacharbeit""")
        n_FC.Interior.Color = 255
        n_FC.StopIfTrue = False
    End With
   
    With Range("A3:E24")
        Set n_FC = .FormatConditions.Add(Type:=xlExpression, Formula1:="=$B3=""i.A""")
        n_FC.Interior.Color = vbYellow
        n_FC.StopIfTrue = False
    End With
   
End Sub


Hier wird der Bereich nur durchgegangen und hart dicke Linien gesetzt.
Wenn dir die Linien nicht dick genug sind, kannst du .Weight = 3 noch auf 4 erhöhend

Code:
Sub Dicke_Abgrenzung()

    Set rws = Range("C3").CurrentRegion.Offset(1, 0)
    rws.Borders.LineStyle = xlNone
    For Each rw In rws.Rows
   
        If Cells(rw.Row, "C") <> "" _
            And Cells(rw.Row + 1, "C") <> "" _
            And Cells(rw.Row, "C") <> Cells(rw.Row + 1, "C") Then
       
            With Range("A" & rw.Row & ":E" & rw.Row).Borders(xlEdgeBottom)
                .LineStyle = xlContinuous
                .Weight = 3
                .ColorIndex = 0
            End With
        End If
    Next rw
End Sub

Viel Erfolg!

Gruß, MCO
Viel Erfolg!

Gruß, MCO
Antworten Top
#9
Eine VBA Lösung direkt über die bedingte Formatierung ist nicht möglich.

Um Formatierungen dieser Art zu machen muss ein Makro separat aufgerufen werden, automatisch ist dies nur über Ereignisse möglich. Diese wiederum sind nur sehr begrenzt vorhanden.
https://learn.microsoft.com/de-de/office...ect-events

Ein Ereignis für diesen Zweck gibt es nicht, wenn man das umsetzen will, dann geht das nur über Umwege und mit hohem Aufwand. In der Regel wird der Aufwand so hoch das sich dadurch Nebeneffekte ergeben bzw. zeigen die einen Einfluss auf die Performance und / oder das Verhalten der Datei haben.

Andreas.
Antworten Top
#10
Servus,

ja mein erster Gedanke war das ich das mit Bedingter Formatierung lösen kann, dies geht auch aber leider kann ich keine dicke Linie erstellen, sodass ich dann auf die Idee gekommen bin dies mit VBA zu lösen.
Dein unten stehender Code funktioniert. Wäre es noch möglich alle Zellen mit Rahmen zu bearbeiten aber bei Datumwechsel dennoch die dicke Linie?
Besten Dank dafür
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste