VBA FormatConditions Formula1 Adresse

Hallo an Alle,

Hier was zum Knobeln für die Experten!

Ich möchte in einem VBA-Makro folgenden Code ausführen :

Sub MaxBereich()
 Dim Bereich as Range
 Set Bereich = Range("A" & Range("B1"), "A" & Range("C1"))
 'B1: Bereichanfang = 1
 'C1: Bereichende = 100
 Bereich.Name = "Bereich"
 With Bereich
 .FormatConditions.Add Type:=xlExpression, Formula1:="="A"&B1=MAX(Bereich)"
 .FormatConditions(1).Interior.ColorIndex = 3
 End With
End Sub)

Funktioniert natürlich nicht so. Aber wie müßte es richtig heißen?
Dieses Makro soll zwischen 2 Meßwerteerfassungen für mehrere Wertespalten und jeweils 3 bedingte Formatierungen eingesetzt werden. Alles funktioniert, nur die relative Adresse vor der Funktion nicht. Es soll dort A1 dastehen.

Gruß Manne

Grüezi Manne

Rein String-technisch würde ich den Teil so schreiben (ungetestet):

Formula1:="=A"&B1&"=MAX(Bereich)"

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Salve Thomas,

danke für die Antwort zu so später Stunde !
Leider klappt’s nicht. „Fehler beim Kompilieren. Erwartet: Anweisungsende“. Wäre auch zu schön und einfach gewesen für diese Knobelei.

Da gibt’s noch die Möglichkeit:

.... Range("A"&Range("B1"),"A"&Range("C1")).Formula1:="=Max(Bereich)"

funktioniert aber auch nicht. „Erwartet: Benannter Parameter“.
Gleiche Antwort, wenn ich versuchsweise die direkte Adresse eingebe :

...Range("A1:A100")...

Ich google schon den ganzen Tag und meine Augen sind schon viereckig mit schweren Augenlidern. Aber es ist zu **wichtig** , um aufzugeben.

Gruß Manne

Grüezi Manne

danke für die Antwort zu so später Stunde !
Leider klappt’s nicht. „Fehler beim Kompilieren. Erwartet:
Anweisungsende“. Wäre auch zu schön und einfach gewesen für
diese Knobelei.

Und ganz einfach ein wenig zu spät :wink:

Ich google schon den ganzen Tag und meine Augen sind schon
viereckig mit schweren Augenlidern. Aber es ist zu
wichtig , um aufzugeben.

So klappt es hier, nun getestet:

Formula1:="=A" & Range("B1") & "=MAX(Bereich)"

Aber achte darauf, dass A1 beim Ablaufen des Codes die aktive Zelle ist.

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -
1 Like

Salve Thomas,

Das Makro läuft präzise wie ein schweizer Uhrwerk, dank Deiner Hilfe.
Ich wußte nicht, daß man in Formula:="…" auch VBA-Befehle, wie „Range“, einsetzen kann.
Nach Umgewandelung einer dummen Propagandaparole aus dem Kalten Krieg heißt es heute: „Von den Schweizern lernen, heißt Excel (lernen) kennen.!“

Gruß und Danke von Manne

Grüezi Manne

Das Makro läuft präzise wie ein schweizer Uhrwerk, dank Deiner
Hilfe.

Fein, das freut mich auch sehr :smile:

Ich wußte nicht, daß man in Formula:="…" auch VBA-Befehle,
wie „Range“, einsetzen kann.

Die .Formula ist ja eigentlich nur ein String. Wie dieser zusammengebaut wird spielt letztlich keine Rolle, daher klappt das auch in der obigen Form.

Nach Umgewandelung einer dummen Propagandaparole aus dem
Kalten Krieg heißt es heute: „Von den Schweizern lernen, heißt
Excel (lernen) kennen.!“

Danke für die Blumen :smile:

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -