14.06.2018, 09:09
Hallo zusammen,
ich bin leider ein Neuling was VBA-Programmierung angeht.
Ich habe eine Excel-Liste, die mehrere Felder mit einander vergleicht in dennen jeweils ein Datum hinterlegt ist.
Ist die Zelle blau hinterlegt und alle "wenn"-Funktionen erfüllt, färbt sich die Zelle rot bzw grün.
Da dies auf Dauer sehr unübersichtlich wird, würd ich dies gern über Smybolsätze (unter Bdeingten Formatierungen -> Symbolsätze -> Indikatoren -> grüner Haken - gelbes Ausrufezeichen- rotes Kreuz) lösen. Eine Bedingte Formatierung macht in meinem Fall, aufgrund der ernormen Datenmenge, keinen Sinn.
Ist die Bedinung erfüllt damit sich das Feld rot einfärbt, hätte ich gern das optisch nur das rote Kreuz zu sehen ist.
Ist die Bedinung erfüllt damit sich da Feld grün einfärbt, hätte ich gern das optisch nur der grüne Haken zu sehen ist.
In beiden Fällen soll es aber so sein, klickt man auf die Zelle dann erscheint das eingetragene Datum in der Bearbeitungsleiste.
Folgenden Code habe ich für die Farbe Rot und und Farbe grün bereits erstellt:
Ich arbeite mit einer For-Next-Schleife, i steht für Zeilen und a1 für Spalten, In A1, Spalte D sowie in der zu bearbeitenten Zelle steht ein Datum.
'rote farbe
If Worksheets("Übersicht").Cells(i, a1).Interior.ColorIndex = 5 Then
If Range("A1").Value - Range("D" & i).Value > 365 Or Worksheets("Übersicht").Cells(i, a1) = "" _
Or Worksheets("Übersicht").Cells(i, a1).Value < Range("D" & i).Value Then
Cells(i, a1).Interior.ColorIndex = 3
End If
End If
'grüne Farbe
If Worksheets("Übersicht").Cells(i, a1).Interior.ColorIndex <> xlNone And Worksheets("Übersicht").Cells(i, a1).Value - Range("D" & i).Value > 1 And Range("A1").Value - Range("D" & i).Value < 365 _
Or Worksheets("Übersicht").Cells(i, a1).Interior.ColorIndex <> xlNone And Worksheets("Übersicht").Cells(i, a1).Value - Range("D" & i).Value = 1 And Range("A1").Value - Range("D" & i).Value < 365 _
Then
Worksheets("Übersicht").Cells(i, a1).Interior.ColorIndex = 4
End If
Ich habe es bereits mit dem Makro-Rekorder versucht. Ich schaffe es allerdings nicht die Symbolsätze in meinen Code zu integrieren.
Ich bedanke mich jetzt schon für jede Hilfe bzw. Unterstützung.
Grüße Veronika
ich bin leider ein Neuling was VBA-Programmierung angeht.
Ich habe eine Excel-Liste, die mehrere Felder mit einander vergleicht in dennen jeweils ein Datum hinterlegt ist.
Ist die Zelle blau hinterlegt und alle "wenn"-Funktionen erfüllt, färbt sich die Zelle rot bzw grün.
Da dies auf Dauer sehr unübersichtlich wird, würd ich dies gern über Smybolsätze (unter Bdeingten Formatierungen -> Symbolsätze -> Indikatoren -> grüner Haken - gelbes Ausrufezeichen- rotes Kreuz) lösen. Eine Bedingte Formatierung macht in meinem Fall, aufgrund der ernormen Datenmenge, keinen Sinn.
Ist die Bedinung erfüllt damit sich das Feld rot einfärbt, hätte ich gern das optisch nur das rote Kreuz zu sehen ist.
Ist die Bedinung erfüllt damit sich da Feld grün einfärbt, hätte ich gern das optisch nur der grüne Haken zu sehen ist.
In beiden Fällen soll es aber so sein, klickt man auf die Zelle dann erscheint das eingetragene Datum in der Bearbeitungsleiste.
Folgenden Code habe ich für die Farbe Rot und und Farbe grün bereits erstellt:
Ich arbeite mit einer For-Next-Schleife, i steht für Zeilen und a1 für Spalten, In A1, Spalte D sowie in der zu bearbeitenten Zelle steht ein Datum.
'rote farbe
If Worksheets("Übersicht").Cells(i, a1).Interior.ColorIndex = 5 Then
If Range("A1").Value - Range("D" & i).Value > 365 Or Worksheets("Übersicht").Cells(i, a1) = "" _
Or Worksheets("Übersicht").Cells(i, a1).Value < Range("D" & i).Value Then
Cells(i, a1).Interior.ColorIndex = 3
End If
End If
'grüne Farbe
If Worksheets("Übersicht").Cells(i, a1).Interior.ColorIndex <> xlNone And Worksheets("Übersicht").Cells(i, a1).Value - Range("D" & i).Value > 1 And Range("A1").Value - Range("D" & i).Value < 365 _
Or Worksheets("Übersicht").Cells(i, a1).Interior.ColorIndex <> xlNone And Worksheets("Übersicht").Cells(i, a1).Value - Range("D" & i).Value = 1 And Range("A1").Value - Range("D" & i).Value < 365 _
Then
Worksheets("Übersicht").Cells(i, a1).Interior.ColorIndex = 4
End If
Ich habe es bereits mit dem Makro-Rekorder versucht. Ich schaffe es allerdings nicht die Symbolsätze in meinen Code zu integrieren.
Ich bedanke mich jetzt schon für jede Hilfe bzw. Unterstützung.
Grüße Veronika