Hallo zusammen,
ich möchte eine bedingte Formatierung in Excel mit VBA lösen und habe folgendes Problem:
Mithilfe einer Userform erstellt ein Benutzer ein neues Tabellenblatt. Dabei wird in Abhängigkeit von den Angaben in der Userform (z.B. die Anzahl der Spalten) ein Bereich festgelegt, in dessen Zellen der Benutzer später Zahlen eingetippt. Abgesehen von diesem Bereich sind die restlichen Zellen des Blattes gesperrt.
Beim Erstellen des Tabellenblattes sollen mithilfe eines Makros gleich Regeln für eine bedingte Formatierung in die Zellen des ungesperrten Bereichs geschrieben werden.
Die Regel für die bedingte Formatierung soll in Abhängigkeit von der Spalte so lauten: Zellwert > E7 bzw. Zellwert > F7 bzw. Zellwert > G7, usw.
Mir ist bekannt, dass
.FormatConditions.Add(xlCellValue, xlGreater, "=E7"). die für die Spalte F gewünschte Regel Zellwert > E7 liefert.
Da die Regel aber für jede Spalte angepasst werden muss, passt der Code ("=E7") so nicht.
.FormatConditions.Add(xlCellValue, xlGreater, Cells(7, i)). liefert die Regel Zellwert > 4
Dabei ist 4 der Zahlenwert, der z.B. in der Zelle E7 stand, als das Makro ausgeführt wurde. Wenn jetzt der Zellenwert durch den Benutzer z.B. von 4 auf 5 geändert wird, liefert die Regel natürlich nicht mehr das gewünschte Ergebnis.
.FormatConditions.Add(xlCellValue, xlGreater, Cells(7, i).Address). liefert die Regel Zellwert > "$E$7"
Hier stören die Anführungszeichen.
Wie muss ich den Code schreiben, damit das Makro für jede Spalte die gewünschte Regel in den Bereich schreibt.
VG Sebastian
|