Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
252to256
252to256
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Aus VBA-Funktion eine Variable in ein Worksheet üb

Aus VBA-Funktion eine Variable in ein Worksheet üb
05.05.2003 10:48:47
Max
Moin Ihr Excel-Schlauen!
Ich bräuchte einen Tipp, wie ich eine Variable aus einer Funktion in ein Worksheet übergebe.
Die Variable ist nicht die Funktion selbt.

z.B.
Function var1(var2)
'' var1 ist gesucht, var2 wird aus Worksheet übergeben
Do
xn = (2 + xn) ^ var2
n = n + 1
Loop Until xn > 100000
var1 = xn
'' und jetzt soll auch n übergeben / die Zielzelle für n
'' aktuallisiert werden werden.
End Function


Der in Subs funktionierende Befehl
Sheets("Worksheet").Cells(1, "c").Value = n
funktioniert leider nicht.

Danke für die Tipps, Gruß an die Experten,
Max



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

Betreff
Datum
Anwender
Anzeige
Re: Aus VBA-Funktion eine Variable in ein Worksheet üb
05.05.2003 11:03:59
jolly

Hallo Max,

es muss lauten

Sheets("Worksheet").Cells(1,3) = n

oder

Sheets(Worksheet").Range("C1") = n

"c" funktioniert bei Cells nicht.

Gruß
jolly

Re: Aus VBA-Funktion eine Variable in ein Worksheet üb
05.05.2003 11:07:54
Nike

Hi,
versuchs mal so:

Sheets("Worksheet").Cells(1, 3).Value = var1(n)

mit deiner Funktion stimmt was nicht, du zählst n hoch,
hast aber keine Auswirkung wenn du n hochzählst...

Bye

Nike

Re: Aus VBA-Funktion eine Variable in ein Worksheet üb
05.05.2003 11:14:00
Martin Beck

Hallo Max,

in einer Funktion kannst Du m.W. nur den Inhalt der Zelle ändern, in der die Formel steht, die diese Funktion verwendet. Da Du mit der Funktion zwei Ergebnisse produzierst (xn, n), müßtest Du beide in die gleiche Zelle eintragen

also var1 = xn & ", " & n

Mir ist die Funktion als solche aber auch nicht klar. Du zählst zwar n hoch, in der eigentlichen Berechnung

xn = (2 + xn) ^ var2

ändert sich dadurch aber der Wert von xn nicht. Falls xn <=100000 ergibt das eine Endlosschleife.

Gruß
Martin Beck

Anzeige
Wie jetzt?
05.05.2003 11:26:09
Max

Moin nochmal, Danke für die Antworten, die mir leider nicht helfen.

Was diese Funktion macht, ist nur ein Beispiel.
In meiner echten Funktion geht es um eine Iteration, dessen Erbebniss ich brauche.
Außerdem möchte ich die Anzahl der Iterationsschritte ausgegeben. dazu dient das Zählen des n.

wie bekomme ich also eine zweite Variable aus einer Funktion?

Gruß, Max




Re: Aus VBA-Funktion eine Variable in ein Worksheet üb
05.05.2003 11:39:35
Marcus

Hi Max,

du kannst aus einer Function heraus keine anderen Zellen beschreiben, sondern nur an die aufrufende Funktion einen Wert zurückgeben.

Verwende für die Zielzelle C1 folgende Funktion und Formel:

Function varN(var2)
Do
xn = (2 + xn) ^ var2
n = n + 1
Loop Until xn > 100000
varN = n
End Function

=VarN(Wert für var2)

mfg
Marcus


Anzeige
Re: Aus VBA-Funktion eine Variable in ein Worksheet üb
05.05.2003 11:45:53
Marcus

Hi jolly,

>>
"c" funktioniert bei Cells nicht.
>>

wie kommst du zu der Behauptung?

Sub test()
Dim n
n = "Marcus"
Sheets(1).Cells(1, "c").Value = n
End Sub

mfg
Marcus

Re: Wie jetzt?
05.05.2003 11:56:35
Martin Beck

Hallo Max,

1. Eine Beispielfunktion, die ungeeignet ist, führt eher in die irre.

2. Ich habe Dir die m.E. einzig mögliche Lösung doch bereits gepostet, Du mußt den Inhalt beider Variablen in einer Zelle ausgeben, und zwar in derjeinigen, in der die Formel steht.

Hier mal ein funktionsfähiger Code:

Die Eingabe von z.B.

=var1(2)

liefert als Ergebnis

Ergebnis: 100489; Iterationsschritte: 316

Gruß
Martin Beck

Anzeige
Kannte ich noch nicht - Fehler gemacht
05.05.2003 12:01:38
jolly

Hallo Marcus,

habe es vorher ausprobiert, weil ich die Schreibweise nicht kannte.

kam ständig ein Fehler.

Muss wohl beim Anlegen der Test-Funktion einen Fehler gemacht haben.

Gruss
jolly

Re: Wie jetzt?
05.05.2003 12:15:26
Max

Danke Martin, das funktioniert prima.
Da ich aber mit dem in die Zelle geschriebenen Ergebniss weitere Rechenschritte im Worksheet vornehme (sowohl mit den Iterationschritten, wie auch mit dem eigentlichen Erbebniss, weiss ich wieder nicht, wie ich die Aufzählung der Ergebnisse in den Zellbezügen für Excel weiterverarbeiten kann.

Z.B. aus deinem Beispiel in
Ergebnis: 100489; Iterationsschritte: 316
soll der erste Teil 100489 in Zelle x33 durch Zelle x32 geteilt werden.

Das ist jetzt mein Problem.
Gruß an Dich, Bernd

Anzeige
Weitere Bearbeitung in VBA oder in der Tabelle?
05.05.2003 12:34:39
Martin Beck

Hallo Max - Bernd(?),

erfolgt die weitere Bearbeitung in VBA oder in der Tabelle? Für letzteres geht es wie folgt:

Nimm folgenden abgespeckten Code:

Die Texte hatte ich nur zur Verdeutlichung vorgesehen.

Nehmen wir an, das Formelergebnis steht in C14. Dann schreibst Du in X33 folgende Formel:

=LINKS(C14;FINDEN(";";C14)-1)/X32

Falls Du n benötigst, gilt:

=RECHTS(C14;LÄNGE(C14)-FINDEN(";";C14))

Gruß
Martin Beck


349 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige