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
> 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
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...
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 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]
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 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!
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 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
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 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.