Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1956to1960
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Mit VBA Bedingte Formatierung und dynamischer Formel setzen

Mit VBA Bedingte Formatierung und dynamischer Formel setzen
12.12.2023 14:13:50
Frank
Hallo,
ich möchte über VBA eine Bedingte Formatierung setzen dessen Formelbezug sich dynamisch je nach vorliegender Datenbasis (in Form von mehr oder weniger Spalten) änder kann

mit folgenden Ausschnitt aus meinen Code wird die Bedingte Formatierung bisher gesetzt:

.Cells(13, LastCMisch + 1).FormatConditions.Delete
.Cells(13, LastCMisch + 1).FormatConditions.Add Type:=xlExpression, Formula1:= _
"=Y13>AC13"
.Cells(13, LastCMisch + 1).FormatConditions(1).Interior.Color = 52479

Mir geht es nun darum die Formel der Bedingung über VBA anzupassen. Aus den "Y13>AC13" müsste, wenn eine Spalte hinzugekommen ist "Z13>AG13" werden. Ist das mit VBA mitteln umsetzbar? Wenn ja Wie? Bin für alle Informationen dankbar.

Danke

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mit VBA Bedingte Formatierung und dynamischer Formel setzen
12.12.2023 14:32:17
Frank
Korrektur "=Y13>AC13" müsste dann "=Z13>AD13" werden (nicht AG)
AW: Mit VBA Bedingte Formatierung und dynamischer Formel setzen
12.12.2023 16:13:33
Frank
Habe es jetzt erstmal so gelöst:

Bastel mir die Formel in einen String zusammen (Problem dabei das anstatt die Spaltennummer derSpaltenbuchstabe benötigt wird):

Form3 = "=" & Split(.Cells(13, LastCMisch + 1).Columns.Address, "$")(1) & "13" _
& ">" & Split(.Cells(13, LastCMisch + 5).Columns.Address, "$")(1) & "13"

und übergebe das in die Formel der bedingten Formatierung:

.Cells(13, LastCMisch + 1).FormatConditions.Delete 'Bedingte Formatierungen löschen
.Cells(13, LastCMisch + 1).FormatConditions.Add Type:=xlExpression, Formula1:=Form3 'Hervorheben wenn ungleich Berechnet
.Cells(13, LastCMisch + 1).FormatConditions(1).Interior.Color = 52479

Falls jemand einen eleganteren Weg hat, gerne mitteilen

Anzeige
AW: Mit VBA Bedingte Formatierung und dynamischer Formel setzen
12.12.2023 16:50:15
Uduuh
Hallo,
Form3= Cells(13, LastCMisch+1).Address(0,0) &">" & Cells(13, LastCMisch+5).Address(0,0)

Gruß aus'm Pott
Udo
AW: Mit VBA Bedingte Formatierung und dynamischer Formel setzen
13.12.2023 11:52:52
daniel
Hi

Wenn der Spaltenabstand zwischen LastCMisch+1 und den beiden anderen Spalten immer gleich ist, kannst du die Formel auch in Z1S1-Screibweise angeben:

=Z(0)S(10)&lt&gtZ(0)Z(14)

Die Zahlenwerte natürlich auf den tatsächlichen Abstand einstellen.

Die bedingte Formatierung erkennt bei Formeln automatisch, ob diese mit Z1S1 oder A1-Adressen geschrieben sind, man kann also beides verwenden, man muss nur innerhalb einer Formel einheitlich sein.

Allerdings muss die Formel in Landessprache geschrieben werden, dh. das Makro kann nicht in verschiedenen Länderversionen eingesetzt werden.

Gruß Daniel
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige