Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
476to480
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
476to480
476to480
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VBA: Bedingte Formatierung - Formel auslesen

VBA: Bedingte Formatierung - Formel auslesen
01.09.2004 19:01:35
Boris
Hi Leute,
in A1 ist eine bedingte Formatierung hinterlegt:
Formel ist:
=WOCHENTAG(A1;2)>5
Jetzt möchte ich diese Formel per VBA auslesen. Allerdings scheint es dabei notwendig zu sein, die Zelle A1 auch zu selektieren, da es sonst aufgrund der relativen Zellengabe in der bedingten Formatierung auch zu nem relativen Ergebnis kommt...Warum nur?

Sub test()
[a1].Select
MsgBox [a1].FormatConditions(1).Formula1 'ergibt =WOCHENTAG(A1;2)>5
[z100].Select
MsgBox [a1].FormatConditions(1).Formula1 'ergibt =WOCHENTAG(Z100;2)>5, obwohl ich [a1] voranstelle
End Sub

Also spielt die Referenz für die FormatConditions (hier: [a1]) dabei wohl überhaupt keine Rolle?!? Kann mir das jemand kurz erläutern?
Grüße Boris
AW: VBA: Bedingte Formatierung - Formel auslesen
FP
Hi Boris,
probier statt [a1].FormatConditions(1)....
Range("A1").FormatConditions(1).Formula1
... und schon paßt wieder alles ;-)
Servus aus dem Salzkammergut
Franz
AW: VBA: Bedingte Formatierung - Formel auslesen
Ulf
Das hast du aber jetzt nur mal so ins Blaue geschrieben, oder?
Ulf
AW: VBA: Bedingte Formatierung - Formel auslesen
FP
Hi Ulf,
bin gerade sprachlos :-o
aktive Zelle c2 enthält keine bedingte Formatierung !
a10 die bedingte Formatierung von Boris
debug.print Range("a10").FormatConditions(1).formula1
Antwort: =WOCHENTAG(C2;2)&gt5
d.h. das wäre die bedingte Formatierung in C2, falls C2 eine bedingte Formatierung enthalten würde
der Befehl
debug.print Range("a100").FormatConditions(1).formula1
verursacht einen Fehler, da A100 keine Bedingte Formatierung enthält ( ist soweit ja logisch )
Aber, warum wandelt VBA die bedingte Formatierung der Range-Angabe in die entsprechende bedingte Formatierung der gerade aktiven Zelle um ?
Sehr verwirrtes
Servus aus dem Salzkammergut
Franz
Anzeige
AW: VBA: Bedingte Formatierung - Formel auslesen
K.Rola
Hallo,
das ist doch die Grundlage, auf der das Übertragen von Formaten per Formatpinsel über-
haupt erst möglich ist, denk mal drüber nach.
Gruß K.Rola
Schön, dass ich nicht alleine verwirrt war...;-)
Boris
Hi Franz,
...aber K.Rola hat die - zumindest für mich - logische Erklärung geliefert.
Ich habe auch dort direkt die Folgefrage deponiert.
Danke und Grüße
Boris
AW: VBA: Bedingte Formatierung - Formel auslesen
ypsilon
hi Boris,
da hast du dir ja ein hübsches thema ausgesucht ;-)
kennst du das schon ?
http://home.media-n.de/ziplies/gepackt/fremd/bedingte_form_auslesen.zip
ansonsten nepumuk (ist momentan der einzige der mir so einfällt *grins*) mal direkt ansprechen (gib mal deine erkenntnisse in verständlicher form weiter)
cu Micha
Anzeige
AW: VBA: Bedingte Formatierung - Formel auslesen
K.Rola
Hallo,
hast du das mal gestestet? Ist vom Ansatz her schon falsch, weil Evaluate generell
nur mit englischen Formeln zurechtkommt. Wenn die Syntax der deutschen Formel zufällig
mit der der englischen übereinstimmt, klappts natürlich genauso zufällig.
Gruß K.Rola
AW: VBA: Bedingte Formatierung - Formel auslesen
yps
hi L.Vira
nö, ist ungetestet
nur durch zufall (Hajo treibt sich ja hier scheinbar nicht mehr rum) gefunden und an Boris weitergegeben
wenn das sowieso jetzt sein hobby wird ist es doch schön wenn wenigstens einer mir in verständlicher form erklären kann wie das funktioniert :-)
cu Micha
AW: VBA: Bedingte Formatierung - Formel auslesen
Boris
Hi Micha,
Hajo treibt sich ja hier scheinbar nicht mehr rum
Schau dir die Antworten einer gewissen Annett mal genauer an.
Irgendwie erinnern die mich sehr stark an Hajo... :p
Grüße Boris
Anzeige
Danke, aber...
Boris
Hi Micha,
...mir ging es hier mal wieder - wie sooft - nur um das Prinzip. Ich möchte die Dinge einfach kapieren. Diese Frage entstand aus einem heutigen Beitrag "Evaluate", weil ich damit noch ein wenig experimentiert hatte.
Danke und Grüße
Boris
AW: VBA: Bedingte Formatierung - Formel auslesen
01.09.2004 20:49:47
Christoph
Hi Boris,
ich hab's mal eben bei XP-probiert. Das gibt's das gleiche Phänomen. Allerdings wird bei bedingter Formatierung mit absoluten Zellbezug, die richtige Formel ausgegeben.
"=WOCHENTAG($A$2; 2) Ich kann mir das nur so vorstellen, dass beim Ausführen des Codes die Formel mit relativem Zellbezug auf die gerade selektierte Zelle interpretiert, bzw. berechnet wird.
übrigens wird bei dem folgenden Code der realtive Zellbezug falsch gesetzt, wenn nicht die Zelle "A2" selektiert ist:
Sub OhneSelect()
With Range("A2:A3")
.FormatConditions.Delete
.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=WOCHENTAG(A2; 2) .FormatConditions(1).Interior.ColorIndex = 6
End With
End Sub

Mit dem Recorder aufgenommen (also selektiert) funktioniert das fehlerfrei:

Sub Makro1()
Range("A2:A3").Select
Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=WOCHENTAG(A2; 2)<4"
Selection.FormatConditions(1).Interior.ColorIndex = 6
End Sub
Gruß
Christoph

Anzeige
Auch Dir vielen Dank...
Boris
Hi Christoph,
...ich denke, dass die Erläuterung von K.Rola das "Rätsel" gelöst hat.
Dort habe ich auch noch gefragt, wie man dennoch ohne Slektiererei die Formel (ohne Anpassung der Bezüge) auslesen kann.
Danke und Grüße
Boris
AW: VBA: Bedingte Formatierung - Formel auslesen
K.Rola
Hallo Boris,
selektiere mal z.B. F4 und führ den Code aus, dann wirds vielleicht klarer. Im Grunde
wird, je nach selektierter Zelle, der Bezug relativ ausgegeben, wenn er relativ festgelegt ist. Würdest du A1 weglassen, käm es zu einem Fehler, wenn die selektierte Zelle keine bedingte Formatierung hätte.
Gruß K.Rola
Die Antwort klingt eigentlich recht simpel...
Boris
Hi K.Rola,
dass es mit der relativen Referenz zusammenhängt, hab ich mir ja auch schon gedacht.
Also wird der Bezug - sofern relativ - immer an die gerade aktive Zelle angepasst - und [a1] liefert nur die Ursprungs(relativ)formel.
Folgefrage: Wie kann ich denn nun die Formel aus der bedingten Formatierung in A1 auslesen, ohne A1 zu selektieren - also ohne relative Anpassung der Bezüge?
Gibt´s da auch ne Möglicheit?
BTW: Das interessiert mich einfach nur mal - ich habe keine riesen Aktion damit vor.
Danke und Grüße
{Boris}
Anzeige
AW: Die Antwort klingt eigentlich recht simpel...
K.Rola
Hallo Boris,
also um sicher zu sein, könnte man ja einen Bereich aller Zellen mit FormatConditions
setten und dann selektieren. Ich weiß, das ist verpönt und deshalb werde ich mal nach einer Alternative suchen.
Das Ganze macht eigentlich nur Sinn, wenn man ermitteln will, ob die Bedingung eingetreten ist, wozu sonst sollte man die Formel auslesen wollen? Ist es das, was
du vorhast?
Gruß K.Rola
AW: Die Antwort klingt eigentlich recht simpel...
Boris
Hi K.Rola,
Ist es das, was du vorhast?
Prinzipiell ja, wobei ich - wie bereits erwähnt - derzeit nix Riesiges vorhabe.
Es war nur ein kleines Teilproblem, und diesem möchte ich nur gerne "auf die Schliche" kommen. Wer weiss, wofür es noch gut sein kann :p
Es beruhigt mich aber gewissermaßen, dass selbst die Meisterin aller Codezeilen keine Antwort aus der Pistole parat hat :p
Gleichwohl bin ich - wie immer - an deiner genialen Lösung sehr interessiert.
Grüße Boris
Anzeige
Erstmal: Danke an alle Beteiligten
Boris
Hi K.Rola, Franz, Micha, Christoph und Ulf,
musste leider kurzfristig den Rechner verlassen - daher erst jetzt ne Reaktion.
Werde mir jetzt erstmal alles genau anschauen - dann melde ich mich wieder.
Danke und bis gleich!
Grüße Boris

329 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige