Hi Elex,
das sieht sehr sehr gut aus :) ... Ich würde es nur gerne verstehen, damit ich weiter lerne - vll kannst du mir dabei nochmal helfen:
Code:
For j = 2 To Sheets.Count
With Sheets(j).Cells
For jj = .FormatConditions.Count To 1 Step -1
If InStr(1, .FormatConditions(jj).Formula1, "Einstellungen") Then .FormatConditions(jj).Delete
Next jj
End With
Next j
Ich würde es Zeile für Zeile gerne durchgehen :) ..
1. Der Code gilt für Blatt 2 (Januar) bis Anzahl der Blätter
2. Die nächste Zeile, da liest er die Anzahl der bedingten Formatierungen des Blattes? Oder was bewirkt die Zeile?
3. Er schaut, ob er in der Formel der bedingten Formatierung den String "Einstellungen" findet und löscht diese bed. Formatierung dann?
4 und Rest. Selbsterklärend
Code:
Set rngA = Sheets("Einstellungen").Range(Sheets("Einstellungen").Range("A1").Value2)
For j = 2 To Sheets.Count
Set rngB = Sheets(j).Range(Sheets(j).Range("A1").Value2)
For jj = 1 To rngA.Rows.Count
Fstr = "=ZÄHLENWENN(Einstellungen!" & rngA.Rows(jj).Address & ";" & rngB.Cells(1).Address(0, 0) & ")*(" & rngB.Cells(1).Address(0, 0) & "<>"""")"
rngB.FormatConditions.Add Type:=xlExpression, Formula1:=Fstr
rngB.FormatConditions(jj).StopIfTrue = False
rngB.FormatConditions(jj).Interior.Color = rngA.Columns(1).Cells(jj).Offset(, -2).Interior.Color
Next jj
Next j
1. Ich denke ich benötige diese Range nicht, da die Legende ausreichend dimensioniert ist, dass sie fest bleibt :)
2. Das hatten wir schon
3. Da sah mein kläglicher Versuch, den Bereich darzustellen, wirklich Banane gegen aus. Ich verstehe nur nicht, wieso value2 anstatt value?
4. Makro geht Spalte nach Spalte, je nachdem wieviele Spalten die Range in A1 hat.
5. Puh da steige ich nicht durch
6. Die bedingte Formatierung (Fstr) wird in den Bereich rngB geschrieben?
7. Was passiert hierdurch?
8. Hier schreibt er die Hintergrundfarbe, welche die Zelle hat, die zwei Zeilen links der ersten Zelle des Bereichs rngA ist.
Rest ist selbsterklärend.
Auf jeden Fall sehr sehr schick programmiert, wenn ich das mal so als Laie sagen darf :)
Gruß
P.S.: Was mir noch aufgefallen ist und zu Problemen bei meiner Datei kommen könnte: Die jeweilige Zelle A1 in den Tabellenblättern ist flexibel. Deswegen steht dort auch "=B3:C9" und nicht "B3:C9", sodass bei Hinzufügen einer neuen Spalte der Bereich automatisch in "B3:D9" angepasst wird. Kann man das noch irgendwie beachten oder wirft das nun Probleme auf sodass ich es anders lösen muss?