Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
300to304
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
300to304
300to304
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Runden in eigener Funktion geht nicht !?

Runden in eigener Funktion geht nicht !?
27.08.2003 13:48:04
Tom Test
Hallo zusammen,

ich lerne seit kurzem VBA und knabbere da seit heute morgen an nachstehendem Problem mit einem meiner eigengeschriebenen Testprogramme:

Ich will eingegebene Zahlen auf 2 Nachkommastellen runden und dies (nicht, weil ich es für sinnvoll halte sondern einfach nur wegen des Lerneffektes) in einer eigenen Funktion tun, d.h. so:


Function MeinRunden(ByRef Rundungsvar)
Rundungsvar = WorksheetFunction.Round(Rundungsvar, 2)
End Function


... und diese Funktion hinterher in meinem Makro mit:

MeinRunden(Uebergabewert)

aufrufen. Klappt aber nicht, d.h. der Wert wird nicht gerundet sondern er bleibt unveraendert. Gebe ich hingegen direkt in meinem Makro ein:

Uebergabewert = WorksheetFunction.Round(Uebergabewert, 2)

, dann klappt das. Mache ich irgendwas falsch oder geht es einfach nicht so wie ich es mir anfangs vorgestellt habe? Wenn es nicht so geht wie oben geschildert - warum nicht? Freue mich ueber konstruktive Hilfe :)

Gruesse
Tom

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Runden in eigener Funktion geht nicht !?
27.08.2003 13:52:46
Hajo_Zi
Hallo Tom

Du hast den Wert nicht Deiner Funktion zugewiesen


Function MeinRunden(ByRef Rundungsvar)
MeinRunden = WorksheetFunction.Round(Rundungsvar, 2)
End Function


Gruß Hajo
AW: Runden in eigener Funktion geht nicht !?
27.08.2003 15:30:33
Tom Test
Hallo Hajo,

stimmt, das wars (obwohl sich mir die Logik dahinter noch nicht ganz eröffnet :-)

Besten Dank!
Tom
AW: Danke für die Rückmeldung
27.08.2003 16:43:16
Hajo_Zi
Hallo Tom

Deine Funktin hat den Namen MeinRunden und der Funktion mußt Du den Wert schon zuweisen. Bei dir ist es nur eine Zeile es können aber auch mal zig Zeilen sein.

Falls Code vorhanden wurde dieser getestet unter Betriebssystem XP Pro und Excel Version XP SBE.
Bitte kein Mail, Probleme sollen im Forum gelöst werden.

Microsoft MVP für Excel

Das Forum lebt auch von den Rückmeldungen.
Anzeige
AW: Runden in eigener Funktion geht nicht !?
27.08.2003 15:22:47
GerdZ
Hallo Tom,

dieser Effekt wird durch die Klammern beim Aufruf ausgelöst. Wird die Function mit der Call-Anweisung aufgerufen, müssen Klammern benutzt werden. Ohne Call-Anweisung dürfen sie nicht verwendet werden. Benutzt man sie trotzdem, wird das in Klammern stehende als auszurechnender Ausdruck angesehen und das errechnete Ergebnis an die Function übergeben. Im Prinzip wird so aus einer ByRef-Deklaration eine ByVal-Übergabe.
Eine etwas ausführlichere Beschreibung mit Beispielen steht z.B. auf http://www.mobots.com/ARC/CIS38/cis38/node134.html

Gruß
Gerd
Anzeige
AW: Runden in eigener Funktion geht nicht !?
29.08.2003 13:40:09
Tom Test
Hallo Gerd,

danke fuer die prompte Antwort (und den interessanten Link).

Ohne Klammern, also so:
MeinRunden Uebergabewert
klappts ueberhaupt nicht, gibt ´nen Syntaxfehler!?

Bei der Fehlerdiagnose lag HaJo richtig, mein Problem war gar nicht so diffizil sondern im Gegenteil ganz trivial: Ich haette in der Funktion nicht der uebergebenen Variablen sondern der Funktion den geaenderten Wert zuweisen muessen.

Gruesse
Tom

288 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige