Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1348to1352
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
Inhaltsverzeichnis

Functionen in xla vs. neue Datei

Functionen in xla vs. neue Datei
21.02.2014 12:39:10
Frank
Hallo Hallo und Mahlzeit an Alle,
ich habe einige Funktionen in VBA geschrieben. Nun ist es so, dass ich die Eingabeparameter deutlich reduzieren könnte, wenn ich bspw. Namen in der Datei definiere. Beispiel: Ich habe die Breite und Höhe definiert und brauch in meiner Funktion Volumen nun nur noch die Länge eingeben.
Nun möchte ich meine ganzen Funktionen auch in anderen Excel Dateien verwenden (xla einbinden)
Meine Frage wäre: Ist es möglich, dass man beim Anlegen einer neuen Excel Datei aufgefordert wird die nötigen Namen in der Arbeitsmappe zu definieren, so dass den Funktionen wieder alle erforderlichen Parameter zur Verfügung stehen?
Ich hoffe ich habe mein Anliegen verständlich formuliert.
Ich freue mich auf Antworten.
Viele Grüße
Frank

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Abgesehen mal davon, dass ich es prinzipiell ...
21.02.2014 13:27:44
Luc:-?
…für ungünstig halte, einer in ZellFmln einzusetzenden UDF nur einen Teil der benötigten Argumente mitzugeben, Frank,
- anders liegt der Fall bei internen (Private) Fktt -, ist es schon möglich. Man kann aber auch prüfen, ob diese Namen schon vorhanden sind, und sie anderenfalls automatisch (mit Standardwerten bzw Werten aus der jeweiligen Mappe) anlegen.
Gruß Luc :-?

AW: Abgesehen mal davon, dass ich es prinzipiell ...
21.02.2014 13:46:40
Frank
Hallo Luc,
also findest du es besser, wenn man alle Parameter die übergeben werden in der UDF zu sehen sind?
Ich ein fiktives Beispiel beigefügt. Wenn ich daraus eine xla generiere und diese einbinde, dann geht die Funktion leider nicht mehr. Was sind deine bzw. eure Vorschläge wie man das am Besten angehen könnte?
https://www.herber.de/bbs/user/89385.xlsm
Beste Grüße
Frank

Anzeige
AW: Abgesehen mal davon, dass ich es prinzipiell ...
21.02.2014 14:02:26
Jack_d
Ich glaub Luc meint das eher so
Function Volumen(L As Double) As Double
Dim Höhe As Double
Dim Breite As Double
Höhe = 0.4
Breite = 0.6
Volumen = Höhe * Breite * L
End Function
Und wieso funktioniert das als Addin nicht?
1. Wenn du mit einem Arbeitsblatt arbeiten möchtest, auf der die Werte integriert sind, dann kannst du dies auch in einem Addin hinterlegen. Dies ist aber nur sinnvoll wenn eine logische Zuordnung der Werte erfolgt und keine händische Zuordnung
2. Ist eine UDF nur dann sinnvoll wenn man Zeit spart. Dies ist in deinem Beispiel nicht erkennbar. Dazu bedarf es der originalen Formel

Anzeige
Nee, so hatte ich das eher nicht gemeint, ...
21.02.2014 14:14:58
Luc:-?
…Jack (& Frank),
sondern so: Function Volumen(Länge As Double, Höhe As Double, Breite As Double)
Das ist bei allgemein in ZellFmln anwendbaren Fktt für alle variablen Argumente günstiger, vor allem, wenn der PgmCode in einem AddIn allgemein verfügbar sein soll.
Bei nur intern angewendeten (Hilfs-)Fktt (für Anwendung in einer SubProzedur) kann auch die globale Vereinbarung/Festlegung bestimmter Parameter sinnvoll sein.
Übrigens, wenn man eine Fkt von vornherein auf einen bestimmten AusgabeDatenTyp festlegt, erscheint im Fehlerfall nur #WERT! als Ausgabe. Eine Fehlerdifferenzierung nach Arten ist dann nicht möglich.
Gruß Luc :-?

Anzeige
AW: Nee, so hatte ich das eher nicht gemeint, ...
21.02.2014 14:52:32
Frank
Hallo Luc,
ich habe das auch so verstanden wie du es in deinem ersten Beitrag dargelegt hattest. Meine Frage zielte mit dem hochladen der kleinen Beispielfunktion darauf ab, wie man die UDF in der xla in einer neuen Datei zum laufen bekommt? Ich habe in einer neuen Datei b und h definiert, dennoch funktioniert die UDF noch nicht. Mehr geht es nur um die Umsetzung dieser Idee.
Das für und wieder ob es besser ist alle Parameter in einer UDF zu übergeben oder welche als Name zu hinterlegen, wäge ich gerade ab und dazu dient diese Anfrage :o). Zum Einen werden die Funktionen kürzer, zum Anderen nehme ich mir die Möglichkeit die Funktion "freier" zu definieren.
@Jack: In meinem Beispiel ist das gerade nicht erkennbar. Aber bei meinen Funktionen kommt bspw. sehr oft die Breite, die Höhe usw. vor. Daher kam mir die Idee alle UDF's quasi um diese Parameter einzukürzen.
Daher tat sich die Frage auf. Wie man den Anwender beim Einbinden der xla darüber informiert, dass zunächst z.B.: B und H in der neuen Datei definiert werden müssen, um die UDF's der xla nutzen zu können. Das ist der Kern meiner Anfrage :o).

Anzeige
AW: Nee, so hatte ich das eher nicht gemeint, ...
21.02.2014 16:02:35
Jack_D
Mhh..
Und wenn du beim öffnen der Mappe eine UF /Inputbox einblenden lässt bei der Höhe und Breite für die aktuelle Instanz definiert werden und diese dann an die UDF übergibst..?

AW: Functionen in xla vs. neue Datei
21.02.2014 16:05:43
EtoPHG
Hallo Frank,
Hat das immer noch mit deiner Betontabelle zu tun?
Ich verstehe nicht ganz was du da für einen Ansatz verfolgst.
Wenn es sich um das weiter unten besprochene AddIn handelt, kannst du mal erläutern:
1. Was soll/will der Benutzer auf einem neuen,leeren Blatt eingeben müssen?
2. Was kann über dein AddIn errechnet werden? Was nicht?
3. Was ist dabei das Problem?
Gruess Hansueli

Anzeige
AW: Functionen in xla vs. neue Datei
21.02.2014 16:16:29
Frank
Hallo Hansueli,
ja das ist immernoch die Betontabelle :o).
Es geht dabei darum. Ich möchte nicht immer die Festigkeitskennwerte definieren. Also habe ich mir überlegt für das ganze Thema eine allumfassende xla zu schreiben. Somit kann ich einfach mal eine neue Datei starten und auch wenn ich gerade keine Norm bei der Hand habe weiß ich bestimmte Kennwerte. Das ist Punkt 1.
Nun habe ich aber weitere Funktionen mit deren Hilfe sich innere Kräfte etc. berechnen lassen. Dafür benötigt man u.a. Dehnungen als Eingangswert. Darüber hinaus z.B. auch die Festigkeitsklasse, die Breite, Höhe usw. Es kam mir nun der Gedanke die Werte die immer wieder benötigt werden "global" zu definieren. Stell dir vor man berechnet nun für hunderte von Dehnungen Kräfte/Momente/Schwerpunkte und in jeder Zeile übergebe ich in meiner UDF bspw. die Breite. Dann wäre es doch sinnvoller das global zu definieren. Somit verkürzt sich die UDF und ich übergebe die Breite nur 1 mal anstatt 100 mal.
In einer neuen Excel Datei sollen die UDF zur Verfügung stehen via xla. Meine Frage ist wie ich das mit den globalen, immer wieder kehrenden Parametern mache. Die sind quasi in der neuen Datei noch nicht funktioniert und somit funktionieren auch die UDF's nicht. Ich möchte wissen ob sowas möglich ist und wenn ja wie?
Sind die Fragen damit ausreichend beantwortet worden?
Gruß Frank

Anzeige
AW: Functionen in xla vs. neue Datei
21.02.2014 16:18:18
Frank
Hallo Hansueli,
ja das ist immernoch die Betontabelle :o).
Es geht dabei darum. Ich möchte nicht immer die Festigkeitskennwerte definieren. Also habe ich mir überlegt für das ganze Thema eine allumfassende xla zu schreiben. Somit kann ich einfach mal eine neue Datei starten und auch wenn ich gerade keine Norm bei der Hand habe weiß ich bestimmte Kennwerte. Das ist Punkt 1.
Nun habe ich aber weitere Funktionen mit deren Hilfe sich innere Kräfte etc. berechnen lassen. Dafür benötigt man u.a. Dehnungen als Eingangswert. Darüber hinaus z.B. auch die Festigkeitsklasse, die Breite, Höhe usw. Es kam mir nun der Gedanke die Werte die immer wieder benötigt werden "global" zu definieren. Stell dir vor man berechnet nun für hunderte von Dehnungen Kräfte/Momente/Schwerpunkte und in jeder Zeile übergebe ich in meiner UDF bspw. die Breite. Dann wäre es doch sinnvoller das global zu definieren. Somit verkürzt sich die UDF und ich übergebe die Breite nur 1 mal anstatt 100 mal.
In einer neuen Excel Datei sollen die UDF zur Verfügung stehen via xla. Meine Frage ist wie ich das mit den globalen, immer wieder kehrenden Parametern mache. Die sind quasi in der neuen Datei noch nicht fefiniert und somit funktionieren auch die UDF's nicht. Ich möchte wissen ob sowas möglich ist und wenn ja wie?
Sind die Fragen damit ausreichend beantwortet worden?
Gruß Frank

Anzeige
AW: Functionen in xla vs. neue Datei
25.02.2014 11:41:07
EtoPHG
Hallo Frank,
Zitat:Dann wäre es doch sinnvoller das global zu definieren. Somit verkürzt sich die UDF und ich übergebe die Breite nur 1 mal anstatt 100 mal.
Das macht aber die UDF überhaupt nicht schneller. Parameter werden normalerweise als Reference (Pointer, Zeiger) übergeben und nicht als Wert. Das Rechenintensive ist im Endeffekt das Entscheidende und ob da die Dehnungswerte über einen Zeiger aus einer Zelle oder einer globalen Variablen oder einer Konstanten stammen, spielt von der Performance her eine marginale Rolle.
Darum: Vergiss den Ansatz. Excel ist eine Tabellenkalkualtion und genau für solches geeignet.
Gruess Hansueli
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige