Anzeige
Archiv - Navigation
508to512
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
508to512
508to512
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Function mit 2 Parametern funzt nicht

Function mit 2 Parametern funzt nicht
29.10.2004 11:47:48
MarkusM
Hallo EXCEL Gemeinde,
habe mich an folgender Funktion versucht(is` meine erste...):

Function find_delta(target_range As String, dT As Integer) As Double
Dim count As Integer
Dim actual As Double
Dim diff As Double
count = 10
diff = 0
Start = Cells(count, 7).Value 'Startwert in Zelle G10
Do
count = count + 1
actual = Cells(count, 7).Value 'aktueller wert in G(count)
diff = actual - Start 'Differenz zum Startwert
Loop Until diff > dT ' ende wenn differenz dT zum Startwert gefunden ist
Range(target_range) = Range("F" & count).Value 'und zugehörigen Wert in Spalte F zurückgeben
End Function

Die Funktion soll einen Startwert in G10 solange mit den Werten in G11,G12....vergleichen bis die Differenz >dT ist und dann den zugehörigen Wert in Spalte F zurückgeben und indie Zelle (target_range im gleichen Arbeitsblatt schreiben..
Wenn ich die Fuction mit
sub()
find_delta("L5", 5)aufrufe
.
.
(also schreibe den Wert aus Spalte F nach einer Erhöhung um 5 in Spalte G nach Zelle L5 kommt immer ein erwartet:= )
Was ist da falsch???
Danke & Gruß
Markus

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Function mit 2 Parametern funzt nicht
29.10.2004 12:00:48
Udo
Du musst den Rückgabewert der Funktion schließlich irgendwo hinschreiben.
sub()
dim Wert
Wert = find_delta("L5", 5)
msgbox Wert
End sub
Udo
AW: Function mit 2 Parametern funzt nicht
29.10.2004 12:21:58
Markus
Hi Udo,
klar, und zwar in die Zelle die die Funktion als Parameter übergeben bekommt(hier L5..)
So geht`s irgendwie nicht :-(( (trotzdem Danke)
Oder geht das generell nicht, das eine Funktion einen Parameter übergeben bekommt, der Ihr sagt wo sie den Rückgabewert hintun soll??
Gruß
Markus
AW: Function mit 2 Parametern funzt nicht
29.10.2004 12:25:26
Udo
Wenn du die Funktion als Tabellenfunktion verwendest, wird der Rückgabewert in die Zelle geschrieben, in der die Funktion steht.
Udo
Anzeige
AW: Function mit 2 Parametern funzt nicht
29.10.2004 12:40:38
MarkusM
Hi Udo,
als Tabellenfunktion kann ich das nicht machen. Ich möchte später mal eine variable Anzahl von Messdatensätzen (einige zehn bis einige hundert...)mit Hilfe solcher Funktionen auswerten und mir dann eine Liste aller Werte erzeugen lassen die einer bestimmten Änderung von dT entsprechen.
Da vorher nicht klar ist wieviele Datensätze in einer Liste zusammengefasst werden, kann ich auch keine fixe Tabelle machen und die Funktion da einsetzen....oder?
Gruß
Markus
AW: Function mit 2 Parametern funzt nicht
29.10.2004 12:48:12
Udo
Wozu eigentliche eine Function? Du verwendest gar keinen Rückgabewert.
Udo
AW: Function mit 2 Parametern funzt nicht
29.10.2004 13:14:59
MarkusM
Hä? Wieso?
Kuck mal als Beispiel:
1 25
2 26
3 27
4 28
5 29
6 30
7 31
8 32
In Spalte2 ist der Startwert 25
Wenn ich jetzt eine Änderung von 5 (also von 25 auf 30) auswerten will soll der Rückgabewert das sein was in der ersten Spalte steht also 6, wenn ich eine Änderung von 2 auswerten will, ist der Rückgabewert 3 usw....
Die Zelle wo der Rückgabewert hingeschrieben werden soll(Range(target_range)=Range("F" & count).value) ist ja als Parameter target_range definiert. Dann kann ich in meiner main sub() die target_range hochzählen und so den Wert aus Datei1 z.B. nach L5, den wert aus Datei2 nach L6 usw. schreiben.Eine Andere Funktion soll dann das Ergebniss einer anderen Berechnung nach M5,M6 usw schreiben usw. bis meine main sub() alle ausgewerteten Ergebnisse aller selektierten Datensätze zusammengestellt hat
Das Ding ist ja, das die Funktion funktioniert wenn ich nur einen Parameter (z.B. target_range) deklariere und das dT fix auf 5 setze. Ich will aber nicht hundert gleiche Funktionen haben die mal auf dT=2, dT=5, dT=10... eingestellt sind sondern halt variabel, so daß ich in einem Aufruf definieren kann auf welche Änderung ausgewertet weden soll und wo das Ergebnis hingeschrieben werden soll...
Gruß
Markus
Anzeige
AW: Function mit 2 Parametern funzt nicht
29.10.2004 15:52:29
Udo
Passe!
Udo
AW: Function mit 2 Parametern funzt nicht
29.10.2004 19:56:20
andre
Warum vba?
=INDEX(A:A;VERGLEICH(D1+B1;B:B;0))
Formel z.b. in C1,
in D1 steht der Differenzwert der zu B1 dazugezählt wird.
Als Function:

Sub TueWas()
target_range = "c2"
Range(target_range) = find_delta(5)
End Sub


Function find_delta(dT As Integer) As Double
find_delta = Application.WorksheetFunction.Index(Columns("a"), _
Application.WorksheetFunction.Match([b1] + dT, Columns("b"), 0))
End Function

Statt [b1] dann Deine Startzelle, die Spalten a und b dann auch entsprechend anpassen.
Anzeige
AW: Function mit 2 Parametern funzt nicht
01.11.2004 08:28:41
MarkusM
Hi Andre,
so ähnlich hab`ich das jetzt auch halt mit VBA weil ich mit der Nomenklatur der EXCEL Funktionen nicht klargekommen bin (("a"):[b],";"[],0)???...
Das Problem war aber. daß ich der Funktion find_delta 2 Parameter übergeben wollte: z.B ein C2 um der Funkt. zu sagen wo der Rückgabewert hin soll und z.B 5 um zu definieren auf welche Differenz ausgewertet werden soll.
find delta("C2",5) wäre dann dasselbe gewesen wie Range("C2") = find_delta(5)...
Ich hab` jetzt aber alle Funktionen so geschrieben wie Du das auch schon vorgeschlagen hast. Ich mach` mich jetzt mal an die Routinen zum Einlesen meiner Messdateien da gibt`s bestimmt noch einige Probleme...
Gruß & Danke
MArkus
Anzeige
AW: Function mit 2 Parametern funzt nicht
01.11.2004 18:19:51
andre
... ich arbeite auch im Messwesen und programmiere so manche Auswertung ... :-)
AW: Function mit 2 Parametern funzt nicht
01.11.2004 08:12:56
MarkusM
Macht nix..
trotzdem Danke für den Einsatz..
Gruß
Markus

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige