Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
452to456
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
452to456
452to456
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

definierte Funktion rechnet nicht mit Namen

definierte Funktion rechnet nicht mit Namen
08.07.2004 16:59:18
Bernd
Hallo EXCEL-Gemeinde,
ich habe eine selbstdefinierte Funktion mit einer Übergabevariablen "c".
Zwei weitere Variablen sollen nicht als Argument übergeben werden, sondern aus einem Tabellenblatt kommen (d.h., sie sind dort als Namen "a" und "b" definiert), zb.:

Function funktion(c)
funktion = range("a").value + range("b").value * c
End Function

Im Tabellenblatt rufe ich diese dann in einer Zelle mit =function($a$1) (z.B.) auf - ganz normal eigentlich.
Diese Funktion rechnet leider nur einmal mit a und b, nämlich beim erstmaligen Aufruf der Funktion!
Wenn ich später die Werte von a und b im Tabellenblatt ändere, werden diese nicht nachgezogen!
Was höchstens dann noch funktioniert ist, wenn ich in die Zelle mit der Funktion mit dem Cursor reingehe und nochmal RETURN drücke (F9 funktioniert übrigens auch nicht).
Was muß ich machen, damit mit "a" und "b" automatisch gerechnet wird (ich will "a" und "b" ausdrücklich NICHT mit den Argumenten der Funktion übergeben!)?
Später möchte ich die Funktion dann noch aus einer anderen Datei aufrufen, z.B. =ursprungsdatei.xls!funktion($b$2), dann muß diese auch noch funktionieren.
Schöne Grüße
Bernd

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: definierte Funktion rechnet nicht mit Namen
Nike
Hi,
application.volatile
sollte dafuer sorgen dass die Func auch wieder berechnet wird ;-)
ein etwas detaillierteres definieren der Parameter und

Function
sollte weiteres Unheil vermeiden:

Sub test()
msgbox funktion(range("a").value,range("b").value,2)
End Sub


Function funktion(rng1 as range, rng2 as range, c as double)as double
application.volatile
on error goto errEnd
funktion = (rng1 + rng2) * c
exit function
errEnd:
err.clear
funktion = 0
End Function

Bye
Nike
Anzeige
AW: definierte Funktion rechnet nicht mit Namen
Hans
Was ist soo schwer daran die Paramater, wie c auch, ordnungsgemäß an die Funktion zu übergeben?
Und lasst endlich dieses kranke application.volatile dort wo der Peffer wächst, oder wenn ihr damit schon haussieren geht, dann klärt das geneigte Publikum auch über die Folgen auf! Nachzulesen an diversen Stellen im Archiv hier...
Gruß HW
AW: definierte Funktion rechnet nicht mit Namen
Hans
Was ist soo schwer daran die Paramater, wie c auch, ordnungsgemäß an die Funktion zu übergeben?
Und lasst endlich dieses kranke application.volatile dort wo der Peffer wächst, oder wenn ihr damit schon haussieren geht, dann klärt das geneigte Publikum auch über die Folgen auf! Nachzulesen an diversen Stellen im Archiv hier...
Gruß HW
Anzeige
AW: definierte Funktion rechnet nicht mit Namen
08.07.2004 19:02:03
Bernd
Hallo Hans W.,
kannst Du mir denn dann auch sagen, wie ich die Dinger übergebe, wenn es ja nicht so schwer ist (hast du meine Frage eigentlich gelesen bzw. das Problem mal nachvollzogen?)?
Gruß
Bernd S.
AW: definierte Funktion rechnet nicht mit Namen
Udo
Was soll das Ganze, da es ohnehin nur in diesem einen Blatt funktioniert.
Das ist wohl kaum der Sinn von Funktionen.
Udo
AW: definierte Funktion rechnet nicht mit Namen
08.07.2004 18:58:23
Bernd
Hallo Nike,
danke für Deine Meldung - aber ich komme damit noch nicht klar:
- Deine Funktion erfordert noch drei Übergabevariablen als Argumente (sie ist bei Dir so definiert) - ich möchte nur eine haben, nämlich dieses "c".
- Funktioniert das auch ohne msgbox bzw. wozu braucht man die? Werden dort "a" und "b" eingelesen?
Gruß
Bernd
Anzeige
AW: definierte Funktion rechnet nicht mit Namen
Nike
Hi,
die msgbox war nur als Beispiel gedacht,
wie man die Funktion einsetzen koennte...
ich hatte mir auch noch den Schnitzer erlaubt
nicht ein Range zu uebergeben, sondern nur die Werte der Zellen,
der korrekte Aufruf waere
msgbox funktion(range("a"),range("b"),2)
gewesen...
Die Uebergabe der 3 Werte haette die Funktion flexiebler gemacht.
so weisst du nicht, ob auf dem gerade aktiven Blatt
jeweils zwei Bereichsnamen mit A und B vergeben wurden,
wenn nicht, kommt ein Fehler raus...
Wenn du nur C uebergeben moechtest, dann wohl so:

Sub test()
msgbox funktion(2)
End Sub


Function funktion(c as double)as double
application.volatile
on error goto errEnd
funktion = (range("a").value + range("b").value) * c
exit function
errEnd:
err.clear
funktion = 0
End Function

Bye
Nike
Anzeige
AW: definierte Funktion rechnet nicht mit Namen
09.07.2004 11:35:37
Bernd
Mensch, Nike, das funzt jetzt!
Danke!
Bernd S.
..ach, wenn ich die Funktion dann mit
=quelldatei.xls!funktion($b$2)
von einem anderen Arbeitblatt aus aufrufen möchte, muß ich diese beiden Variablen noch mit
ThisWorkbook.Worksheets(1).Range("a").Value
etc. "behandeln" (hat mir ein Kollege gesagt)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige