Hallo zusammen,
ich habe heute erstmals ein kleines VBA-Modul geschrieben, welches über einen Button aufgerufen wird. Bei der Ausführung erscheint "Sub oder Function nicht definiert". Laut google tritt das Problem häufig auf, aber keiner der vorgeschlagenen Lösungen greift bei mir.
Mein Makro dient zur Geometrieberechnung. Verschiedene Längen werden auf einer Startseite "feste Daten" definiert. Das Makro soll unter Nutzung dieser Längen einen Startwinkel alphastart so lange erhöhen, bis eine von alphastart abhängige Summe kleiner als ein vorgegebener Wert ct ist.
Hier mein Code:
_________________________________________________________________
Option Explicit
Dim i As Range ' i ist der Abstand zw. Wasseroberfläche und oberem Ankerkabel an der Turbine
Dim z As Range ' z ist der Abstand zw. Wasseroberfläche und Ankerpunkt an Land / Brücke / Ponton usw.
Dim ct As Range ' ct ist der Abstand zwischen Ankerpunt und Turbinennase bei der Topverankerung
Dim alphastart As Single ' alphastart ist der Winkel, bei dem die Iteration zum echten Alpha losläuft.
Dim gamma As Single ' gamma ist der Winkel zwischen vertikaler und unterem Ankerseil
Dim a As Range ' a ist der vertikale Abstand zwischen top Ankerseil und Schwerpunkt
Dim b As Range ' b ist der horizontale Abstand zwischen unterem Ankerseil und Schwerpunkt
Dim f As Range ' f ist der Hebelarm des durch die Widerstandskraft der Turbine ausgedrückten, hydrodynamischen Kippmoments
Dim lT As Single ' lT ist die Länge des Topankerseils
Dim lB As Single ' lB ist die Länge des Bottomankerseils
Dim h As Range ' h ist der horizontale Abstand zwischen Nase des Treibgutschutzes und oberem Ankerpunkt an der Turbine
Sub Topverankerung()
Set i = Worksheets("3 - tA").Range("C7")
Set z = Worksheets("3 - tA").Range("B4")
Set ct = Worksheets("3 - tA").Range("B5")
Set a = Worksheets("feste Daten").Range("D15")
Set b = Worksheets("feste Daten").Range("D16")
Set f = Worksheets("feste Daten").Range("D21")
Set h = Worksheets("feste Daten").Range("D28")
alphastart = arctan((i + z) / ct)
gamma = arctan(((a - f) / Tan(alphastart) - b) / a)
lT = h + a * Tan(gamma)
While ct < (lT + (i + z) / Tan(alphastart))
alphastart = alphastart + 0.01
gamma = arctan(((a - f) / Tan(alphastart) - b) / a)
lT = h + a * Tan(gamma)
Wend
Worksheets("3 - tA").Range(C13).Activate
ActiveCell.Value = lT + (i + z) / Tan(alphastart)
Worksheets("3 - tA").Range(C14).Activate
ActiveCell.Value = lT
Worksheets("3 - tA").Range(C15).Activate
ActiveCell.Value = (i + z) / Tan(alphastart)
End Sub
_______________________________________________
Sieht jemand das Problem?
Gruß,
Marcel
|