ich versuche als Neuling in VBA die eingebene nummerische Formel für das Berechnen eines Kegelausschnittvolumens zum Laufen zu bringen. Leider funktioniert es nicht. Die Formel wurde von mir wie folgt in ein Modul eingeben:
Private Sub Command1_Click()
On Error GoTo Meldung 'Bei Fehler gehe zu Sprungmarke
Command2.SetFocus 'Fokus aus Button "Neu"
hk = Val(Tabelle2(Berechnung!H32)) 'Eingabegröße Kegelhöhe
dk = Val(Tabelle2(Berechnung!K31)) 'Grundkreisdurchmesser
lx = Val(Tabelle2(Berechnung!K30)) 'Abstand des Abschnitts von Kegelachse
N = Val(Tabelle2(Berechnung!K33)) 'Schichtanzahl
V = Kegelabschnitt(hk, dk, lk, N) 'Rückgabewert
Tabelle2(Berechnung!K34) = V: Exit Sub 'Str nicht nötig
Meldung:
MsgBox "Bitte Werte eingeben!", 20, "Hinweis"
Tabelle2(Berechnung!H32).SetFocus
End Sub
Public Function Kegelabschnitt(hk, dk, lk, N) As String
If lx = 0 Then lx = 0.000001 'lx darf nicht 0 werden, da es im _
TangensW im Nenner steht
rk = dk / 2: hA = (rk - lx) * hk / rk: dy = hA / N
For i = 1 To N
y = hk - (i * dy - dy / 2)
R = y * rk / hk 'Zelle *
Bx = R - lx 'Zelle **
s = 2 * Sqr(R ^ 2 - lx ^ 2) 'Zelle ***
tangensW = s / 2 / lx 'Tangenswert von Winkel/2
WB = Atn(tandgensW) 'Winkel W in rad (Bogen)
b = R * WB * 2 '(#)Bogenlänge B
dA = b * R / 2 - s * (R - Bx) / 2 '(##)Kreisabschnitt
dV = dA * dy 'Schichtvolumen
V = V + dV '(###)Summenbildung
Next 'dann V dem Funktionsnamen zuweisen
Kegelabschnitt = V 'Rückgabewert
End Function
Es wird mir nur meine Fehlermeldung "Bitte Werte eingeben!" angezeigt.Kann mir da jemand weiterhelfen? Vielen Dank schon mal