Supportnet / Forum / Tabellenkalkulation
Bedingte Formation
Frage
Hallo liebe Helfer,
Hab eine etwas sehr umständliche "Bedingte Formation" in meiner Tabelle. Vielleicht gibt es auch einfachere Möglichkeiten mir ist allerdings keine eingefallen. Ich denke dass es ohne Makro nicht zu vereinfachen geht. Allerdings bin ich der Programmiersprache nicht mächtig. Hätte nichts gegen ein funktionierendes Makro.
So jetzt erst einmal was ich überhaupt machen will bevor ich auf meine private Lösung eingehe.
Beispiel:
Wenn in Spalte A, Zeile1 eine Zahl größer 1 eingetragen wird sollen die Spalten A-V in Zeile 1 farbig hinterlegt werden.
Sobald in Zeile 2 (Spalte A) eine Zahl eingetragen wird soll Zeile 1 wieder in die Ursprungsformatierung und Zeile 2 Spalte A-V farbig hinterlegt werden usw.
Vereinfacht gesagt sind die Zeilen die Kalenderwochen und die Spalten die Produkte. Immer die aktuelle Kalenderwoche soll farbig markiert sein.
Meine derzeitige Lösung:
Bedingte Formation
sieht dann wie folgt aus:
Die Zeilen davor sind andersweitig belegt.
1. Bedingung: "Formel ist=$K$14>1"
(keine Formation)
2. Bedingung: "Formel ist=$K$13>1"
(farbiger Hintergrund)
Dies muss ich jetzt aber für jede Zeile neu machen, da mir nicht bekannt ist, dass man Bedingte Formationen erweitern kann so dass es Excel selbst erkennt.
In der Nächsten Zeile steht dann:
1. Bedingung: "Formel ist=$K$15>1"
(keine Formation)
2. Bedingung: "Formel ist=$K$14>1"
(farbiger Hintergrund)
usw.
Bei 52 bzw 104 Zeilen ist das sehr zeitintensiv.
Da muss es doch eine bessere, handhabungsleichtere Möglichkeit geben ohne die Felder per Hand jede Woche zu ändern.
Könnte mir gut vorstellen, dass es mit nem Makro viel leichter zu lösen wäre.
So bin offen für alle Vorschläge.
Danke schon einmal im Voraus.
gez. Hardwarehacker
Antwort 1 von Saarbauer
Hallo,
warum hälst du die Zelle mit den $-Zeichen fest?
Ich würde nur eine Bedingung eingeben
"Formel ist" =$K14>1 (farbiger Hintergrund), jedoch kenne ich nicht den Grund der anderen Bedingung
Mit dem Pinsel auf die Zelle mit der Bedingten Formatierung und dann über die Spalte ziehen
Gruß
Helmut
warum hälst du die Zelle mit den $-Zeichen fest?
Ich würde nur eine Bedingung eingeben
"Formel ist" =$K14>1 (farbiger Hintergrund), jedoch kenne ich nicht den Grund der anderen Bedingung
Mit dem Pinsel auf die Zelle mit der Bedingten Formatierung und dann über die Spalte ziehen
Gruß
Helmut
Antwort 2 von hardwarehacker
bei deiner lösung würden alle bis dahin vergangenen zeilen markiert bleiben.
die 2. Bedingung ist sozusagen das löschen der formatierung sobald die nächste zeile farbig hinterlegt wird.
wurde aber auch schon oben von mir beschrieben.
Also es funktioniert theoretisch.
Herzliches Dankeschön
Sind trotzdem noch VBA-Vorschläge???
gez. Hardwarehacker
die 2. Bedingung ist sozusagen das löschen der formatierung sobald die nächste zeile farbig hinterlegt wird.
wurde aber auch schon oben von mir beschrieben.
Also es funktioniert theoretisch.
Herzliches Dankeschön
Sind trotzdem noch VBA-Vorschläge???
gez. Hardwarehacker
Antwort 3 von Saarbauer
Hallo
dann würde ich folgendes eingeben:
Für Zeile 1 Spalte A bis V
"Formel ist "=UND(1<=$A1;ISTLEER($A2))
Und dann mit Pinsel nach unten
Gruß
Helmut
dann würde ich folgendes eingeben:
Für Zeile 1 Spalte A bis V
"Formel ist "=UND(1<=$A1;ISTLEER($A2))
Und dann mit Pinsel nach unten
Gruß
Helmut
Antwort 4 von JoeKe
Hallo Hardwarehacker,
mit folgendem Makro, das in das VBA-Projekt deines Tabellenblattes muss, wird die letzte Zeile A-V, die in A1 einen Wert größer 1 hat, gelb gefärbt.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.ScreenUpdating = False
Dim i As Integer
For i = 1 To Cells(Rows.Count, 1).End(xlUp)
If Range("A" & i) > 1 Then
Cells.Interior.ColorIndex = xlNone
Range("A" & i & ":V" & i).Interior.ColorIndex = 6
End If
Next
Application.ScreenUpdating = True
End Sub
MfG
JöKe
mit folgendem Makro, das in das VBA-Projekt deines Tabellenblattes muss, wird die letzte Zeile A-V, die in A1 einen Wert größer 1 hat, gelb gefärbt.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.ScreenUpdating = False
Dim i As Integer
For i = 1 To Cells(Rows.Count, 1).End(xlUp)
If Range("A" & i) > 1 Then
Cells.Interior.ColorIndex = xlNone
Range("A" & i & ":V" & i).Interior.ColorIndex = 6
End If
Next
Application.ScreenUpdating = True
End Sub
MfG
JöKe
Antwort 5 von Hardwarehacker
Funktioniert super solange man die Tabelle nicht leer lässt. Dann will er immer debuggen.
Jetzt ist mir gerade noch etwas eingefallen.
Eine Spalte sollte Farbig anders hervorgehoben werden. Hab jetzt versucht mit logischen denken etwas hinzuzufügen. Klappt allerdings nicht.
Wenn du JöKe mir schreiben könntest wie der/die Befehl/e lautet/n wie ich in Spalte E eine andere Farbe (orange) einbinden kann wäre ich dir zu tiefst verbunden.
gez. Hardwarehacker
Jetzt ist mir gerade noch etwas eingefallen.
Eine Spalte sollte Farbig anders hervorgehoben werden. Hab jetzt versucht mit logischen denken etwas hinzuzufügen. Klappt allerdings nicht.
Wenn du JöKe mir schreiben könntest wie der/die Befehl/e lautet/n wie ich in Spalte E eine andere Farbe (orange) einbinden kann wäre ich dir zu tiefst verbunden.
gez. Hardwarehacker
Antwort 6 von JoeKe
Hallo Hardwarehacker,
erweitere den Code so:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.ScreenUpdating = False
Dim i As Integer
For i = 1 To Cells(Rows.Count, 1).End(xlUp)
If Range("A" & i) > 1 Then
Cells.Interior.ColorIndex = xlNone
Range("A" & i & ":V" & i).Interior.ColorIndex = 6
Range("E" & i).Interior.ColorIndex = 45
End If
Next
Application.ScreenUpdating = True
End Sub
MfG
JöKe
erweitere den Code so:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.ScreenUpdating = False
Dim i As Integer
For i = 1 To Cells(Rows.Count, 1).End(xlUp)
If Range("A" & i) > 1 Then
Cells.Interior.ColorIndex = xlNone
Range("A" & i & ":V" & i).Interior.ColorIndex = 6
Range("E" & i).Interior.ColorIndex = 45
End If
Next
Application.ScreenUpdating = True
End Sub
MfG
JöKe
Antwort 7 von Aliba
Hi Hardwarehacker,
wenn ich es richtig verstehe, werden im Bereich K13 bis Kxx Kalenderwochen als Zahl eingetragen.
Die Zeile der zuletzt eingetragenen Kalenderwoche soll farbig hinterlegt werden und in Spalte E soll nochmal eine andere Farbe (orange) sein.
Bereich A13 bis Vxx markieren
FORMAT - BEDINGTE FORMATRIERUNG - Formel ist:
=UND($K13=MAX($K$13:$K$xx);SPALTE()=6)
Format Hintergrund (orange)
Bedingung hinzufügen:
Formel ist: $K13=MAX($K$13:$K$xx)
Format Hintergrund (wie gewünscht)
Hoffe mal es funzt so, habs jetzt nicht getestet.
CU Aliba
wenn ich es richtig verstehe, werden im Bereich K13 bis Kxx Kalenderwochen als Zahl eingetragen.
Die Zeile der zuletzt eingetragenen Kalenderwoche soll farbig hinterlegt werden und in Spalte E soll nochmal eine andere Farbe (orange) sein.
Bereich A13 bis Vxx markieren
FORMAT - BEDINGTE FORMATRIERUNG - Formel ist:
=UND($K13=MAX($K$13:$K$xx);SPALTE()=6)
Format Hintergrund (orange)
Bedingung hinzufügen:
Formel ist: $K13=MAX($K$13:$K$xx)
Format Hintergrund (wie gewünscht)
Hoffe mal es funzt so, habs jetzt nicht getestet.
CU Aliba
Antwort 8 von Hardwarehacker
@Joke
Herzlichen Dank funktioniert super
@Aliba
Nicht ganz. In Spalte K ist ein Übertrag aus einem anderen Tabellenblatt in dem immer zu Anfang der Woche etwas eingetragen wird. Aber das ist ja nicht von Bedeutung für die Lösung des Problems.
Allerdings funktioniert Ihre Formel nicht.
Excel bringt dann - Formel ungültig!
Dies gilt für beide Formeln.
Wäre trotz der Makroversion noch an Ihrer bedingten Formation interessiert.
Danke
gez. Hardwarehacker
Herzlichen Dank funktioniert super
@Aliba
Nicht ganz. In Spalte K ist ein Übertrag aus einem anderen Tabellenblatt in dem immer zu Anfang der Woche etwas eingetragen wird. Aber das ist ja nicht von Bedeutung für die Lösung des Problems.
Allerdings funktioniert Ihre Formel nicht.
Excel bringt dann - Formel ungültig!
Dies gilt für beide Formeln.
Wäre trotz der Makroversion noch an Ihrer bedingten Formation interessiert.
Danke
gez. Hardwarehacker
Antwort 9 von Aliba
Hi Harware,
zunächst mal möchte ich erwähnen, daß man natürlich höflich miteinander umgehen sollte, es allerdings nicht üblich ist, sich in einem Forum zu Siezen, also biete ich hiermit erstmal das Du an.
So , dann zu Deinem Problem.
Du hast oben geschrieben, daß in der Spalte K die Kalenderwochen stehen. Wo die herkommen ist ersteinmal egal. Also bin ich davon ausgegangen, daß in Spalte K aufsteigende Werte stehen (kommt jetzt auch darauf an, welcher Standard bei den Kalenderwochen angewendet wird. Nach dem amerikanischen Standard wäre das auch so).
Somit wäre in der letzten belegten Zellen in Spalte K auch der höchste Wert.
Die Formeln in der bedingten Formatierung funktionieren bei mir.
Vielleicht hast Du die xx in der Formel falsch interpretiert. Anstelle der xx sollte eigentlich die letzte Zeile Deines zu erwartenden Datenbereiches stehen, also z.B. $K$200
Probier das mal aus, sollte eigentlich funzen.
Ach so ja, bei der ersten Formel nicht SPALTE()=6 , sondern SPALTE()=5.
6 wäre ja die Spalte F und es sollte doch wohl die Spalte E orange werden.
Sollte dem nicht so sein, daß in SPalte K die Werte aufsteigend sind, dann bitte nochmal erklären, was hier genau steht und bitte auch die eingetragenen Formeln.
CU Aliba
zunächst mal möchte ich erwähnen, daß man natürlich höflich miteinander umgehen sollte, es allerdings nicht üblich ist, sich in einem Forum zu Siezen, also biete ich hiermit erstmal das Du an.
So , dann zu Deinem Problem.
Du hast oben geschrieben, daß in der Spalte K die Kalenderwochen stehen. Wo die herkommen ist ersteinmal egal. Also bin ich davon ausgegangen, daß in Spalte K aufsteigende Werte stehen (kommt jetzt auch darauf an, welcher Standard bei den Kalenderwochen angewendet wird. Nach dem amerikanischen Standard wäre das auch so).
Somit wäre in der letzten belegten Zellen in Spalte K auch der höchste Wert.
Die Formeln in der bedingten Formatierung funktionieren bei mir.
Vielleicht hast Du die xx in der Formel falsch interpretiert. Anstelle der xx sollte eigentlich die letzte Zeile Deines zu erwartenden Datenbereiches stehen, also z.B. $K$200
Probier das mal aus, sollte eigentlich funzen.
Ach so ja, bei der ersten Formel nicht SPALTE()=6 , sondern SPALTE()=5.
6 wäre ja die Spalte F und es sollte doch wohl die Spalte E orange werden.
Sollte dem nicht so sein, daß in SPalte K die Werte aufsteigend sind, dann bitte nochmal erklären, was hier genau steht und bitte auch die eingetragenen Formeln.
CU Aliba
Antwort 10 von Hardwarehacker
Danke für deine Antwort
muss mir meinen geschriebenen Text nochmals durchlesen :=)
Melde mich wieder sobald ich es terminlich geschafft habe es auszuprobieren.
Also thx erstmal an alle die geholfen haben.
gez. Hardwarehacker
muss mir meinen geschriebenen Text nochmals durchlesen :=)
Melde mich wieder sobald ich es terminlich geschafft habe es auszuprobieren.
Also thx erstmal an alle die geholfen haben.
gez. Hardwarehacker

