Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: bedingte Formatierung relativer Zellbezug variable

bedingte Formatierung relativer Zellbezug variable
04.03.2019 11:38:04
Alex
Hallo,
ich kriege es einfach nicht hin, und brauche eure Hilfe:
vereinfacht ist die Formel so:
ZeileE =3 SpalteDIPS = 22, lastrow = 1368, SpalteIPS = 20

With Range(Cells(ZeileE, SpalteDIPS), Cells(lastrow, SpalteDIPS)).FormatConditions.Add(Type:= _
xlExpression, Formula1:= "=" & Cells(ZeileE, SpalteIPS).Address(False, False) & """""")

leider wird kein relativer Bezug erstellt, in allen Zellen der Spalte steht diese Formel =T3"" . Irgendwelche Ideen?
Noch eine Frage: Die R1C1 Schreibweise habe ich auch schon versucht, geht leider nicht. Wie funktioniert die? geht die bei mir nicht, weil ich Excel auf deutsch habe?
z.B. optimal wäre ja:

.Formula1:= "=RC" & SpalteIPS & """""")

Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: bedingte Formatierung relativer Zellbezug variable
04.03.2019 12:39:58
guennih
habe noch keine Bedingte Formatierung in VBA erstellt.
Die Bedingte Formatierung auf relativen Bezug ist allerdings auch schon im Frontend etwas tricky.
Drum mach ich in so einem Fall die Bedingte Formatierung für eine Zelle, und kopiere dann die Zelle bzw, Das Format der Zelle auf den gewünschten Bereich.
vielleicht kommst Du auch in 'VBA auf diese Tour weiter.
Die RC-Schreibweise +funktioniert in VBA genauso gut wie die A1 - Schreibweise (bei Formeln, habe noch keine Bedingte Formatierung in VBA erstellt)
Da müsstest Du schreiben
 Formula1:= "= (RC[3] """")"
'ich bevorzuge es die Operatorreihenfolge mit runden Klammern sicherzustellen

Anzeige
AW: bedingte Formatierung relativer Zellbezug variable
04.03.2019 13:09:43
Alex
danke für deine Antwort.
die R1C1 Schreibweise funktioniert irgendwie nicht. Laufzeitfehler 5: Ungültiger Prozeduraufruf oder ungültiges Argument..
With Range(Cells(ZeileE, SpalteDIPS), Cells(lastrow, SpalteDIPS)).FormatConditions.Add(Type:= _
xlExpression, Formula1:= _
"= (RC[3] """")")

Anzeige
AW: bedingte Formatierung relativer Zellbezug variable
04.03.2019 13:19:12
guennih
das "with" ist hier auf jeden fall zu viel
AW: bedingte Formatierung relativer Zellbezug variable
04.03.2019 13:30:55
Alex
vielen dank für deine Antwort, leider funktioniert die Formel auch ohne "with" nicht. Laufzeitfehler5..
Range(Cells(ZeileE, SpalteDIPS), Cells(lastrow, SpalteDIPS)).FormatConditions.Add Type:= _
xlExpression, Formula1:= _
"=(RC[3]"""")" 
Irgendwie habe ich das Gefühl, dass VBA das RC nicht erkennt?
Anzeige
AW: bedingte Formatierung relativer Zellbezug variable
04.03.2019 13:32:50
Alex
zur Vereinfachung habe ich mal die Variablen entfernt
Range(Cells(3, 22), Cells(10, 22)).FormatConditions.Add Type:=xlExpression, Formula1:= _
"=(RC[3]"""")

AW: bedingte Formatierung relativer Zellbezug variable
04.03.2019 13:43:33
Daniel
Hi
normalerweise musst du in VBA alles in englisch angeben.
die Bedingte Formatierung bildet die berühmte Ausnahme von der Regel.
die Formeln der Bedingten Formatierung müssen auch in VBA in landestypischer Schreibweise (hier deutsch) angegeben werden.
dh du musst statt R1C1 das deutsche Z1S1 und Runde klammern für relative Zellbezüge angeben.
für die Formeln der bedingten Formatierung muss man nicht unterscheiden, ob A1- oder Z1S1-bezüge verwendet werden, man kann beides verwenden, allerdings innerhalb einer Formel nur eine Variante.
da es Adressen gibt, die in beiden Schreibweisen gültig sind (z.B. ZS1) und dann A1 prio hat, sollte man die Z1S1-Bezüge immer ausschreiben, so dass sie eindeutig sind (hier Z(0)S1 statt ZS1)
Gruß Daniel
Anzeige
AW: bedingte Formatierung relativer Zellbezug variable
04.03.2019 18:33:28
onur
Solange du dich in "A1"-Bezugsart befindest (Optionen/Formel/Z1S1-Bezugsart NICHT aktiviert), kann das Excel auch nicht erkennen.
AW: bedingte Formatierung relativer Zellbezug variable
05.03.2019 08:43:55
Daniel
Hi Onur
Wenn man die Bedingte Formatierung von Hand erstellt, muss man für die Formel die eingestellte Bezugsart beachten (A1 oder Z1S1)
Wenn man die Bedingte Formatierung per Makro erstellt, kann man beide Schreibweisen unabhängig von der gewählten Einstellung verwenden, man muss nur innerhalb der Formel durchgängig die gleiche nehmen.
Excel prüft hier automatisch, was vorliegt (man muss nur beachten, dass bei Adressen, die in beiden Bezugsarten möglich sind wie ZS1, von einer A1-Adresse ausgegangen wird)
Ebenso wird automatisch geprüft, ob eine Matrixformelberechnung notwendig ist oder nicht.
Gruß Daniel
Anzeige
AW: bedingte Formatierung relativer Zellbezug variable
04.03.2019 13:34:40
Daniel
Hi
normalerweise sprechen Excel und VBA englisch miteinander.
die Bedingte Formatierung bildet hier aber die ausnahme, du musst die Formeln landestypisch, dh wahrscheinlich deutsch angeben, dh mit Z1S1:
Formula1:="=Z(0)S(3)="""""
Gruß Daniel
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Bedingte Formatierung mit relativem Zellbezug in Excel


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und gehe zu dem Arbeitsblatt, in dem Du die bedingte Formatierung anwenden möchtest.
  2. Wähle den Zellbereich aus, auf den Du die bedingte Formatierung anwenden willst.
  3. Gehe zu "Start" > "Bedingte Formatierung" > "Neue Regel".
  4. Wähle "Formel zur Ermittlung der zu formatierenden Zellen verwenden".
  5. Gib in das Feld für die Formel den relativen Zellbezug ein. Beispiel für die englische A1 Schreibweise:
    =A1>10

    Wenn Du die R1C1 Schreibweise verwenden möchtest, gebe ein:

    =RC[1]>10
  6. Klicke auf "Formatieren", um das gewünschte Format auszuwählen.
  7. Bestätige mit OK und schließe die Fenster.

Wenn Du die bedingte Formatierung in VBA nutzen möchtest, kann der Code so aussehen:

With Range(Cells(3, 22), Cells(10, 22)).FormatConditions.Add(Type:=xlExpression, Formula1:="=(RC[3]"""")")

Häufige Fehler und Lösungen

  • Problem: Laufzeitfehler 5: Ungültiger Prozeduraufruf.

    • Lösung: Überprüfe, ob Du die Formel in der richtigen Schreibweise angibst. In Deutschland musst Du Z1S1 statt R1C1 verwenden. Beispiel:
      Formula1:="=Z(0)S(3)="""""
  • Problem: Keine Anwendung der bedingten Formatierung.

    • Lösung: Stelle sicher, dass der Zellbereich korrekt ausgewählt ist und die Formel keine Syntaxfehler enthält.

Alternative Methoden

  1. Format kopieren: Du kannst eine Zelle mit der gewünschten bedingten Formatierung erstellen und dann das Format auf andere Zellen kopieren. Dies funktioniert gut, wenn Du die excel bedingte formatierung kopieren relativer bezug verwenden möchtest.
  2. VBA verwenden: Erstelle die bedingte Formatierung direkt im VBA-Editor. Achte darauf, die richtige Schreibweise für die Formel zu verwenden.

Praktische Beispiele

  • Beispiel 1: Wenn Du die Zellen in Spalte A formatieren möchtest, wenn der Wert größer als 10 ist, kannst Du folgende Formel nutzen:

    Range("A1:A10").FormatConditions.Add Type:=xlExpression, Formula1:="=A1>10"
  • Beispiel 2: Verwende die Z1S1 Schreibweise für die bedingte Formatierung:

    Range("A1:A10").FormatConditions.Add Type:=xlExpression, Formula1:="=Z(0)S(0)>10"

Tipps für Profis

  • Nutze relative Bezüge, um die Flexibilität der bedingten Formatierung zu erhöhen. Dies ermöglicht es Dir, Formeln auf verschiedene Bereiche anzuwenden, ohne sie manuell anpassen zu müssen.
  • Achte darauf, dass die Formeln in der landestypischen Schreibweise angegeben werden, wenn Du VBA verwendest. In Deutschland ist dies Z1S1 statt R1C1.
  • Testen: Überprüfe die bedingte Formatierung in einer kleinen Datenmenge, bevor Du sie auf große Bereiche anwendest.

FAQ: Häufige Fragen

1. Warum funktioniert meine R1C1 Formel nicht in VBA? Die R1C1 Schreibweise muss in der entsprechenden landestypischen Form angegeben werden. In Deutschland musst Du Z1S1 verwenden.

2. Wie kann ich die bedingte Formatierung auf einen größeren Bereich übertragen? Du kannst die Formatierung auf eine Zelle anwenden und dann das Format kopieren oder im VBA-Bereich einen größeren Zellbereich angeben.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige