Discussion:
ARCTAN Funktion in VBA
(zu alt für eine Antwort)
christian
2004-10-31 17:33:02 UTC
Permalink
Liebe Newsgroup,

Die Funktionen sin, cos, tan... funktionieren in meiner VBA sub, aber
arctan, arcsin... nicht. Die Fehlermeldung ist "sub oder function nicht
definiert". Was muss ich tun?

Grüße,

Christian
Melanie Breden
2004-10-31 17:52:22 UTC
Permalink
Hallo christian,
Post by christian
Liebe Newsgroup,
Die Funktionen sin, cos, tan... funktionieren in meiner VBA sub, aber
arctan, arcsin... nicht. Die Fehlermeldung ist "sub oder function nicht
definiert". Was muss ich tun?
warum die Funktion ARCTAN im englischen "ATAN" nicht in der WorksheetFunktion-
Auflistung enthalten ist, kann ich dir leider nicht sagen.

Dafür funktioniert es aber mit der Evaluate-Methode:

Dim dblARCTAN As Double
dblARCTAN = Evaluate("=ATAN(dblZahl)")
--
Mit freundlichen Grüssen

Melanie Breden
- Microsoft MVP für Excel -

http://excel.codebooks.de (Das Excel-VBA Codebook)
#Excel-Auftragsprogrammierung#
christian
2004-10-31 18:35:01 UTC
Permalink
Post by Melanie Breden
Hallo christian,
Post by christian
Liebe Newsgroup,
Die Funktionen sin, cos, tan... funktionieren in meiner VBA sub, aber
arctan, arcsin... nicht. Die Fehlermeldung ist "sub oder function nicht
definiert". Was muss ich tun?
warum die Funktion ARCTAN im englischen "ATAN" nicht in der WorksheetFunktion-
Auflistung enthalten ist, kann ich dir leider nicht sagen.
Dim dblARCTAN As Double
dblARCTAN = Evaluate("=ATAN(dblZahl)")
--
Mit freundlichen Grüssen
Melanie Breden
- Microsoft MVP für Excel -
http://excel.codebooks.de (Das Excel-VBA Codebook)
#Excel-Auftragsprogrammierung#
Hallo Melanie,
folgende Anweisungen verursachen alle den Fehler 2029 (aus meinem Code):

a_result(i) = Evaluate("atan(a_)")
a_result(i) = Evaluate("=atan(a_)")
a_result(i) = Evaluate("arctan(a_)")
a_result(i) = Evaluate("=arctan(a_)")

Übrigens, im Tabellenblatt kann ich schon schreiben "=arctan(zahl)".

Grüße,

Christian
Jean Ruch
2004-10-31 19:32:12 UTC
Permalink
Post by christian
Übrigens, im Tabellenblatt kann ich schon schreiben "=arctan(zahl)".
Hallo Christian,

Probier es dann mal mit FormulaLocal

mit freundlichem Gruß

Jean
Melanie Breden
2004-10-31 20:12:28 UTC
Permalink
Hallo christian,
Post by christian
a_result(i) = Evaluate("atan(a_)")
a_result(i) = Evaluate("=atan(a_)")
a_result(i) = Evaluate("arctan(a_)")
a_result(i) = Evaluate("=arctan(a_)")
wenn du Variablen in der Evaluate-Methode verwendest, müsssen diese
aus dem Gesamtstring extrahiert werden.
Schreibe so:

a_result(i) = Evaluate("ATAN(" & a_ & ")")
Post by christian
Übrigens, im Tabellenblatt kann ich schon schreiben "=arctan(zahl)".
Ja, im Tabellenblatt geht die Funktion ganz normal, aber nicht als VBA WorksheetFunction.
--
Mit freundlichen Grüssen

Melanie Breden
- Microsoft MVP für Excel -

http://excel.codebooks.de (Das Excel-VBA Codebook)
#Excel-Auftragsprogrammierung#
christian
2004-10-31 18:43:03 UTC
Permalink
Post by Melanie Breden
Hallo christian,
Post by christian
Liebe Newsgroup,
Die Funktionen sin, cos, tan... funktionieren in meiner VBA sub, aber
arctan, arcsin... nicht. Die Fehlermeldung ist "sub oder function nicht
definiert". Was muss ich tun?
warum die Funktion ARCTAN im englischen "ATAN" nicht in der WorksheetFunktion-
Auflistung enthalten ist, kann ich dir leider nicht sagen.
Dim dblARCTAN As Double
dblARCTAN = Evaluate("=ATAN(dblZahl)")
--
Mit freundlichen Grüssen
Melanie Breden
- Microsoft MVP für Excel -
http://excel.codebooks.de (Das Excel-VBA Codebook)
#Excel-Auftragsprogrammierung#
Melanie,

kaum sucht man einen halben Tag... ich hab die Lösung gefunden. Die VBA
Funktion für ATAN oder ARCTAN heißt schlicht und ergreifend ATN.

Danke für Deine Hilfe,

Christian
Melanie Breden
2004-10-31 20:12:57 UTC
Permalink
Hallo christian,
Post by christian
kaum sucht man einen halben Tag... ich hab die Lösung gefunden. Die VBA
Funktion für ATAN oder ARCTAN heißt schlicht und ergreifend ATN.
laut "VBALISTE.xls" heisst die Funktion ARCTAN in englisch ATAN, wie
kommst du auf ATN und wie verwendest du ATN in VBA?

Habe den Ausdruck "ATN" in XL2003 nicht zum laufen gebracht.
Es geht nur die Variante mit Evaluate("ATAN(1)").

Welche Excel Version verwendest du?
--
Mit freundlichen Grüssen

Melanie Breden
- Microsoft MVP für Excel -

http://excel.codebooks.de (Das Excel-VBA Codebook)
#Excel-Auftragsprogrammierung#
Michael Zimmermann
2004-10-31 21:56:16 UTC
Permalink
Hallo!
Post by Melanie Breden
Post by christian
kaum sucht man einen halben Tag... ich hab die Lösung
gefunden. Die VBA Funktion für ATAN oder ARCTAN heißt
schlicht und ergreifend ATN.
laut "VBALISTE.xls" heisst die Funktion ARCTAN in
englisch ATAN, wie kommst du auf ATN und wie verwendest
du ATN in VBA?
?Atn(Zahl)
Post by Melanie Breden
Habe den Ausdruck "ATN" in XL2003 nicht zum laufen
gebracht.
Es geht nur die Variante mit Evaluate("ATAN(1)").
Die Funktion Atn ist seit Urzeiten in VBA enthalten.
Mit Excel-Worksheet-Functions hat das nichts zu tun.

ArcSin, ArcCos und weitere lassen sich daraus ableiten:

ArcSin(X) = Atn(X / Sqr(-X * X + 1))
ArcCos(X) = Atn(-X / Sqr(-X * X + 1)) + 2 * Atn(1)

Für die, die in der Schule nicht aufgepaßt haben, ;-)
wird der Mittelstufenstoff sogar noch in der OH
wiederholt: Suchbegriff "Abgeleitete mathematische
Funktionen"

Gruß aus Mainz
Michael
Melanie Breden
2004-10-31 23:10:35 UTC
Permalink
Hallo Michael,
Post by Michael Zimmermann
Post by Melanie Breden
laut "VBALISTE.xls" heisst die Funktion ARCTAN in
englisch ATAN, wie kommst du auf ATN und wie verwendest
du ATN in VBA?
?Atn(Zahl)
Post by Melanie Breden
Habe den Ausdruck "ATN" in XL2003 nicht zum laufen
gebracht.
Es geht nur die Variante mit Evaluate("ATAN(1)").
Die Funktion Atn ist seit Urzeiten in VBA enthalten.
Mit Excel-Worksheet-Functions hat das nichts zu tun.
danke dir für den Hinweis, das erklärt wahrscheinlich auch, warum
ATAN nicht als WorksheetFunction zur Verfügung steht.
--
Mit freundlichen Grüssen

Melanie Breden
- Microsoft MVP für Excel -

http://excel.codebooks.de (Das Excel-VBA Codebook)
#Excel-Auftragsprogrammierung#
Loading...