• Hallo Gast!
    Noch bis zum 20.07. kannst Du an unserer Umfrage zum Hersteller des Jahres teilnehmen! Als Gewinn verlosen wir unter allen Teilnehmern dieses Mal eine Grafikkarte Eurer Wahl für bis zu 1.000 EUR - über eine Teilnahme würden wir uns sehr freuen!

suche VBA Hilfe!

sk.timmae

Semiprofi
Thread Starter
Mitglied seit
05.02.2003
Beiträge
1.990
Hallo,

ich habe eine Problem mit dem programmieren.

Im Direktfenster soll das raus kommen:
Phi(0.3)= 0,692201116636573
Phi(0.6)= ..........
Phi(0.9)= .........
.
.
.
Phi(21)= ......

1) -> stimmt soweit, wenn man Call ksi_wer(i) durch eine Inputbox ersetzt läuft die ab wie sie soll, jetzt soll sie aber von 2) die Werte 0.3, 0.6,0.9 bis 21 als i in Phi= einsetzen.

Public Sub Phi_Rechnung_1()
pi = 4 * Atn(1)
Call ksi_wert(i)
Phi = Log(Abs(i)) * ((pi * (Sin(i)) ^ 2) ^ (1 / 6))
Debug.Print "Phi"; "("; i; ")="; Phi
End Sub

2) ->> hier steckt das problem, der macht die Schleife! gibt dann aber nur die letzte Zahl (21) hoch.
Sub ksi_wert(i)
For i = 0.3 To 21 Step 3 / 10
Next i
End Sub

könnt ihr mir bei dem problem helfen?

Gruß
sk.timmae
 
Zuletzt bearbeitet:
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Also wenn Du das Unterprogramm ksi_wert(i) aufrufst, dann läuft er ganz normal die Schleife durch bis 21 bzw. hört er bei 21 auf, da bei 21 ja Schluss sein soll. Klar, dass dann i noch als 21 definiert ist und nur 21 zurückgibt...

Ich würde die Schleife in die Phi-Berechnung mit einbinden oder musst Du unbedingt einen "Call ksi_wert" machen?

Public Sub Phi_Rechnung_1()

pi = 4 * Atn(1)
For i = 0.3 To 21 Step 3 / 10

Phi = Log(Abs(i)) * ((pi * (Sin(i)) ^ 2) ^ (1 / 6))
Debug.Print "Phi"; "("; i; ")="; Phi

next i
End Sub
 
Zuletzt bearbeitet:
hi, danke schön für deine antwort.

ja so habs ich es jetzt auch gelöst, nur eigentlich sollte die obere halt die Werte aus der unteren holen. Es sind eigentlich 2 Aufgaben.
 
Achso, also musst Du zwei Funktion schreiben? Die Schleife muss trotzdem in der Phi_Rechnung bleiben. Innerhalb der Schleife rufst Du dann ganz einfach jedes Mal ksi_wert auf...


Public Sub Phi_Rechnung_1()

pi = 4 * Atn(1)
For j = 1 to 70
call ksi_wert()
Phi = Log(Abs(i)) * ((pi * (Sin(i)) ^ 2) ^ (1 / 6))
Debug.Print "Phi"; "("; i; ")="; Phi
next j
End Sub

Sub ksi_wert()
i = 0,3*j
End Sub
 
boah SUPER!

Public Sub Phi_Rechnung_1()

Pi = 4 * Atn(1)
For j = 0.3 To 21 Step 3 / 10
Call ksi_wert
Phi = Log(Abs(j)) * ((Pi * (Sin(j)) ^ 2) ^ (1 / 6))
Debug.Print "Phi"; "("; j; ")="; Phi
Next j
End Sub

Sub ksi_wert()
i = 0.3 * j
End Sub


so gibt er die Werte 0,3 bis 20,7 wieder es soll aber auch die 21 aus drucken.
aber schonmal 1000Dank, echt super.

edit:
zwar unschön aber es erfüllt seinen zweck:
For j = 0.3 To 21 + 0.3 Step 3 / 10
 
Zuletzt bearbeitet:
Das ist tatsächlich nicht sehr schön... aber egal, hauptsache es funzt...
 

Ähnliche Themen

Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh