Sehr geehrte Damen und Herren,
ich Programmiere derzeit an einer umfangreicheren Aufgabe bei der über ein Excel-Tabellenblatt aber auch über ein Formular diverse Rechnungen durchgeführt werden sollen.
Beim Fomular hänge ich nun derzeit an folgenden Problem.
Ich rufe im Formular eine Funktion auf die ich auch im Formular programmiert habe. In der Funktion verwende ich Variablen, die ich davor im Programm aufgerufen habe. Diese sind jedoch in der Funktion im Formular komischerweise nicht übergeben. Habe jetzt schon alles versucht aber irgendwie klappts nicht. Hier eventuell Programmschnipsel die das verdeutlichen.
Programm:
Funktion:
Problem wie oben schon beschrieben, dass er wenn ich das Programm ausführ in der function keine Werte hat für zb MK oder Cpk obwohl sie im Programm aufgerufen werden und Werte reingeschrieben werden.
Über Hilfe würde ich mich sehr freuen.Vielen Dank
ich Programmiere derzeit an einer umfangreicheren Aufgabe bei der über ein Excel-Tabellenblatt aber auch über ein Formular diverse Rechnungen durchgeführt werden sollen.
Beim Fomular hänge ich nun derzeit an folgenden Problem.
Ich rufe im Formular eine Funktion auf die ich auch im Formular programmiert habe. In der Funktion verwende ich Variablen, die ich davor im Programm aufgerufen habe. Diese sind jedoch in der Funktion im Formular komischerweise nicht übergeben. Habe jetzt schon alles versucht aber irgendwie klappts nicht. Hier eventuell Programmschnipsel die das verdeutlichen.
Programm:
Visual Basic-Quellcode
- ElseIf (ListBox1.Selected(1) = True) And CheckBox2.Value = True Then
- 'Variablendeklaration
- Dim lauf As Integer
- Dim fkt As Double
- Dim fktStrich As Double
- Dim eps As Double
- Dim TKausStart As Double
- Dim delta As Double
- 'Umformen der Variablen in Typ Double
- A = TextBox9.Text
- TKein = CDbl(TKein)
- TWein = CDbl(TWein)
- MK = CDbl(MK)
- MW = CDbl(MW)
- A = CDbl(A)
- Cpw = CDbl(Cpw)
- Cpk = CDbl(Cpk)
- k = CDbl(k)
- TKausStart = TKein + TWein
- TKausStart = TKausStart / 2
- delta = 0.00001
- eps = 0.001
- TKaus = TKausStart
- 'Berechnung
- fkt = fun(TKausStart)
- For lauf = 1 To 50
- fktStrich = (fun(TKaus + delta) - fun(TKaus)) / delta
- TKaus = TKaus - fkt / fktStrich
- fkt = fun(TKaus)
- 'Ausgabe
- If (Abs(fkt) < eps) Then GoTo Ausgabe
Funktion:
Visual Basic-Quellcode
- Function fun(TKaus)
- 'TWaus = ((-1 * MK * Cpk) / (MW * Cpw) * (TKaus - TKein)) + TWein
- TWaus = TWein - ((MK * Cpk) * (TKaus - TKein) / (MW * Cpw))
- If (TWaus - TKaus) < 0 Then
- deltaTlog = ((TWein - TKein) - (TWaus - TKaus)) / (Log((TWein - TKein) / (Abs(TWaus - TKaus))))
- Else
- deltaTlog = ((TWein - TKein) - (TWaus - TKaus)) / (Log((TWein - TKein) / (TWaus - TKaus)))
- 'fun = k * A * deltaTlog - (MK * Cpk * (TKaus - TKein)) * 3.6
- End If
- fun = k * A * deltaTlog - (MK * Cpk * (TKaus - TKein)) * 0.2778
- End Function
Problem wie oben schon beschrieben, dass er wenn ich das Programm ausführ in der function keine Werte hat für zb MK oder Cpk obwohl sie im Programm aufgerufen werden und Werte reingeschrieben werden.
Über Hilfe würde ich mich sehr freuen.Vielen Dank