Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Selection.FormatConditions, was ist falsch?

40 views
Skip to first unread message

Thomas Tauber

unread,
Jan 19, 2004, 12:11:13 PM1/19/04
to
Komisch,

meistens laufen diese drei Zeilen wunderbar (wochenlang problemlos),
manchmal bekomme ich in der dritten Zeile die Fehlermeldung:
Laufzeitfehler '5', ungültiger Prozeduraufruf oder ungültiges Argument.
Was ist denn daran wieder falsch?
Ich kann mir keinen Reim darauf machen, bin mal wieder am verzweifeln!
Ein gültiger Bereich ist markiert!

Range("A" & Kollegenzeilen(0) & ":A" & Kollegenzeilen(1)).Select
Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlLess,
Formula1:="=$A$40-3"

Freue mich über Eure Hilfe!
--
T.Tauber
Bei Antworten an meine Email-Adresse bitte "tom" entfernen


Susanne Wenzel

unread,
Jan 21, 2004, 3:39:41 AM1/21/04
to
Hallo Thomas,
nur was ganz allgemeines, zu mehr reichen (jedenfalls mir ;-) Deine
gelieferten Informationen nicht:

> Komisch,
> meistens laufen diese drei Zeilen wunderbar (wochenlang problemlos),
> manchmal bekomme ich in der dritten Zeile die Fehlermeldung:
> Laufzeitfehler '5', ungültiger Prozeduraufruf oder ungültiges
> Argument. Was ist denn daran wieder falsch?
> Ich kann mir keinen Reim darauf machen, bin mal wieder am verzweifeln!
> Ein gültiger Bereich ist markiert!
>
> Range("A" & Kollegenzeilen(0) & ":A" & Kollegenzeilen(1)).Select
> Selection.FormatConditions.Delete
> Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlLess,
> Formula1:="=$A$40-3"

Bist Du beim Melden des LZF mal im Debug-Modus gewesen und hast versucht zu
ergründen, was genau er nicht mag? Meine grobe Vermutung ist eigentlich,
dass in Deinem markierten Bereich eine Zelle (oder mehrere?) dabei ist, wo
er Deine bedingte Formatierung nicht anwenden kann. Anders ausgedrückt: ich
tippe mal, dass Dir Stück-Für-Stück-Debugging bevorsteht...

Viele Grüße aus dem hohen Norden Deutschlands
Susanne


Thomas Tauber

unread,
Jan 22, 2004, 3:46:02 AM1/22/04
to
Danke für die Antwort aus dem hohen Norden ins verschneite Sachsen!

Ich musste mich bis jetzt noch nicht mit dem Debug-Modus beschäftigen.
Jetzt ist es wohl soweit :-((

--
T.Tauber
Bei Antworten an meine Email-Adresse bitte "tom" entfernen

"Susanne Wenzel" <wirdnich...@onlinehome.de> schrieb im Newsbeitrag
news:ONd2Fp$3DHA...@TK2MSFTNGP12.phx.gbl...

Thomas Tauber

unread,
Jan 22, 2004, 10:29:50 AM1/22/04
to
Bug oder Feature?

Ich habe des Rätsels Lösung gefunden:

Schalte ich unter "Extras/Optionen/Allgemein" auf "Z1S1-Bezugsart" um, kommt
diese Fehlermeldung.
Nehme ich die normale Anzeige geht auch das Makro wieder.

Wieso verändern solche Einstellungen die Lauffähigkeit von Makros?
Kapiere ich da etwas nicht oder ist das ein Fehler in ExcelXP?


--
T.Tauber
Bei Antworten an meine Email-Adresse bitte "tom" entfernen

"Susanne Wenzel" <wirdnich...@onlinehome.de> schrieb im Newsbeitrag
news:ONd2Fp$3DHA...@TK2MSFTNGP12.phx.gbl...

Thomas Ramel

unread,
Jan 22, 2004, 10:40:43 AM1/22/04
to
Grüezi Thomas

Thomas Tauber schrieb:
> Bug oder Feature?

Feature natürlich! *lol*

> Schalte ich unter "Extras/Optionen/Allgemein" auf "Z1S1-Bezugsart" um, kommt
> diese Fehlermeldung.
> Nehme ich die normale Anzeige geht auch das Makro wieder.
>
> Wieso verändern solche Einstellungen die Lauffähigkeit von Makros?
> Kapiere ich da etwas nicht oder ist das ein Fehler in ExcelXP?

Du musst dich für die eine oder ander Methode entscheiden - aber durchgänig.
Wenn Du in der Formel Zellwn wie folgt ansprichst:

> Formula1:="=$A$40-3"

kann dies bei eingestellter Z1S1-Bezugsweise nicht funktionieren.
Ebenso könnte ich mir vorstellen, dass diese Range-Zuweisung ebenfalls ihre
Probleme macht (aber nicht getestet):

Range("A" & Kollegenzeilen(0) & ":A" & Kollegenzeilen(1)).Select

--
Mit freundlichen Grüssen

Thomas Ramel
- MVP für Microsoft-Excel -

[Win 2000Pro SP-4 / xl2000 SP-3]

Thomas Tauber

unread,
Jan 22, 2004, 12:11:09 PM1/22/04
to
Hallo,

das verstehe ich trotzdem nicht ganz:
Ich habe z.B. in einer Zelle "A1" folgende Formel stehen, die sich auf das
vorhergehende Blatt bezieht:
=('12.01.2004'!AK4)

Stelle ich die Bezugsart um, steht dort dann
=('12.01.2004'!ZS(36))

Wo liegt da das Problem?
Das gleiche geschieht übrigens auch, wenn ich die bedingte Formatierung "von
Hand" setze:

Einmal steht in dem Feld "Bedingung1":
Zellwert ist kleiner als "=$A$40-3" oder "=Z40S1-3".

M.E. doch ein Bug, denn jeder Benutzer dieser Exceldatei kann in den
Optionen diese Zellbezugsart verändern und hätte dann das "böse Erwachen"!
Ich habe es selbst nur bemerkt, weil ich das manchmal umstelle, um für zu
schreibenden Code die Spaltennummern herauszufinden.
Es ist ja auch so, dass es manchmal praktischer ist, Range mit z.B. "A4"
darzustellen und dann für Schleifen bei Zeilen und Spalten mit Zahlen zu
arbeiten. Dies klappt bei mir auch alles, nur bei der Bedingten Formatierung
"zickt" ExcelXP herum.

Ich freue mich über jede Antwort, bei der ich wieder etwas dazulernen kann!
Besten Dank für Dein Feedback!


T.Tauber
Bei Antworten an meine Email-Adresse bitte "tom" entfernen

"Thomas Ramel" <t.r...@MVPs.org> schrieb im Newsbeitrag
news:400FEEFB...@MVPs.org...

Thomas Ramel

unread,
Jan 22, 2004, 4:32:49 PM1/22/04
to
Grüezi Thomas

Thomas Tauber schrieb:
>

> das verstehe ich trotzdem nicht ganz:
> Ich habe z.B. in einer Zelle "A1" folgende Formel stehen, die sich auf das
> vorhergehende Blatt bezieht:
> =('12.01.2004'!AK4)
>
> Stelle ich die Bezugsart um, steht dort dann
> =('12.01.2004'!ZS(36))
>
> Wo liegt da das Problem?
> Das gleiche geschieht übrigens auch, wenn ich die bedingte Formatierung "von
> Hand" setze:
>
> Einmal steht in dem Feld "Bedingung1":
> Zellwert ist kleiner als "=$A$40-3" oder "=Z40S1-3".

Das tust Du aber in der Bezugsart 'A1'.
Versuche die obige Formel mal in der jeweils anderen Bezugsart einzugeben,
dann liefert Excel einen Fehler.

Formeln, die schon in Zellen stehen, weden beim Ändern der Bezugsart angepasst.

Du schriebst folgendes:

>>Schalte ich unter "Extras/Optionen/Allgemein" auf "Z1S1-Bezugsart" um,
>>kommt diese Fehlermeldung.
>>Nehme ich die normale Anzeige geht auch das Makro wieder.
>

>> Formula1:="=$A$40-3"

Hier schreibst Du unter 'Z1S1'-Bedingungen eine Formel in
'A1'-Schreibweise; das *muss* zwangsläufig zu einem Fehler führen, genauso
wie wenn Du diese Formel von Hand eingibst, solange die 'Z1S1'-Bezugsart
eingestellt ist.
Wooltest du das Makro, das einen fixen String als Formel übergibt, unter
beiden Bezugsarten lauffähig machen, müsstest Du die Bezugsart per VBA
abfragen und einen entsprechend anders formulierten String als Formel
übergeben.

Nach wie vor bin ich der Ansicht: Kein Bug!

Thomas Tauber

unread,
Jan 23, 2004, 2:53:42 AM1/23/04
to
Na gut, ich sehe es ein!
Doch kein Bug, aber Excel könnte da schon ein bißchen schlauer sein.....

Ich löse das Problem jetzt, indem ich in der Routine am Anfang schreibe:

Application.ReferenceStyle = xlA1 'stellt auf "A1"-Schreibweise um

Da Du ja ein Auskenner bist:
Gibt es eine Möglichkeit, den ReferenceStyle "fest" einzustellen?
Ich meine das so, dass andere Benutzer das Häkchen unter "Optionen/Ansicht"
nicht mehr setzen können oder muss ich sicherheitshalber vor allen
Codeteilen, die solche Bezüge verwenden, diese obige Zeile setzen?
--

T.Tauber
Bei Antworten an meine Email-Adresse bitte "tom" entfernen

"Thomas Ramel" <t.r...@MVPs.org> schrieb im Newsbeitrag

news:40104181...@MVPs.org...

Thomas Ramel

unread,
Jan 23, 2004, 4:24:42 AM1/23/04
to
Grüezi Thomas

Thomas Tauber schrieb:


> Na gut, ich sehe es ein!
> Doch kein Bug, aber Excel könnte da schon ein bißchen schlauer sein.....

Nunja, auch in VBA tut es eben dasselbe wie in der normalen Umgebung...

> Ich löse das Problem jetzt, indem ich in der Routine am Anfang schreibe:
>
> Application.ReferenceStyle = xlA1 'stellt auf "A1"-Schreibweise um
>
> Da Du ja ein Auskenner bist:

Oh, danke für die Blumen; ich versuche auch nur, ein wenig dazuzulernen.

> Gibt es eine Möglichkeit, den ReferenceStyle "fest" einzustellen?

Das wäre IMHO nicht die Art des feinen Mannes; wenn dueuf einen User
triffst, der die Z1S1-Bezugsart haben wil, solltest Du ihn nicht zu etwasn
anderem 'zwingen'.

> Ich meine das so, dass andere Benutzer das Häkchen unter "Optionen/Ansicht"
> nicht mehr setzen können oder muss ich sicherheitshalber vor allen
> Codeteilen, die solche Bezüge verwenden, diese obige Zeile setzen?

IMHO wäre es das vernünftigste, den Refstyle vor den Manipulationen
auszulesen, entsprechend zu setzen und dann am Ende wieder zurückzustellen.
Nicht zu vergessen wäre dies auch im Errorhandling, damit bei einem Fehler
nicht böse Überraschungen auf den User warten.
Oder Du legst in den Spezifikationen deines Projektes fest, dass die
A1-Bezugsart erforderlich ist, prüfst dies zu Beginn und verlässt den code
mit der Bitte um die Umstellung.
Ein Beispiel zum Auslesen und Zurücksetzen könnte wie folgt aussehen:

Sub Test()
On Error GoTo ErrorHandler
Dim RefStyle
RefStyle = Application.ReferenceStyle
Application.ReferenceStyle = xlA1

'Dein Code
ErrorHandler:
Application.ReferenceStyle = RefStyle
End Sub

Thomas Tauber

unread,
Jan 23, 2004, 10:02:10 AM1/23/04
to
Alos ich glaube, das mit den - sind ja eh nur virtuelle - Blumen hast Du
verdient.
Dass Du maßgeblich an dieser Newsgroup beteiligt bist, ist für den kein
Geheimnis, der hier öfter mal vorbeischaut.
Ich habe gerade mein Suchenfenster von OutlookExpress bemüht:
429 Nachrichten vom 29.11.2003 bis heute hast Du hier geschrieben.
Wirklich hier mal ein GROSSES DANKESCHÖN an Deine unermüdliche Hilfe!
Man bleibt eben immer einmal irgendwo hängen und ist dann sehr froh, wenn
einem geholfen wird.

So, nun genug der Blumen ;-))

Danke für den Hinweis, dem User die Freiheit der Anzeigeart bei den
Zellbezügen zu lassen.
Vielleicht werde auch ich ein "feiner Herr" und werde die Benutzer meiner
Datei diese Freiheit lassen.
Mit meiner einen Zeile Code bin ich jetzt auch zum Ziel gekommen, aber Du
hast natürlich Recht, es ist kein Problem, zuvor die Benutzereinstellung
auszulesen und nach dem Code wieder zurückzusetzen.

Noch viele gute und hilfreiche Zeilen von Dir in dieser Newsgroup
wünscht sich T.Tauber


Bei Antworten an meine Email-Adresse bitte "tom" entfernen

"Thomas Ramel" <t.r...@MVPs.org> schrieb im Newsbeitrag

news:4010E85A...@MVPs.org...

Thomas Ramel

unread,
Jan 23, 2004, 11:01:12 AM1/23/04
to
Grüezi Thomas

Thomas Tauber schrieb:

[Hymne gesnippt]

> So, nun genug der Blumen ;-))

Gut; meine Vase wird sonst zu klein ;-)

> Danke für den Hinweis, dem User die Freiheit der Anzeigeart bei den
> Zellbezügen zu lassen.
> Vielleicht werde auch ich ein "feiner Herr" und werde die Benutzer meiner
> Datei diese Freiheit lassen.
> Mit meiner einen Zeile Code bin ich jetzt auch zum Ziel gekommen, aber Du
> hast natürlich Recht, es ist kein Problem, zuvor die Benutzereinstellung
> auszulesen und nach dem Code wieder zurückzusetzen.

Sieh da, die Erziehung greift ;-)

Spass beiseite; ich finds gut, die Dinge auszudiskutieren, wie es hier
geschehn ist. Ich lern meistens ebensoviel dabei, wie andere, die mitlesen.

> Noch viele gute und hilfreiche Zeilen von Dir in dieser Newsgroup
> wünscht sich T.Tauber

Auf dass ein Wunsch in Erfüllung gehen möge danke ich dir fürs Feedback und
wünsche ein erholsames Wochenende.

0 new messages