Hallo!
Vorab, ich habe keinerlei Erfahrung in Programmieren. Ich bin momentan in einem Praktikum und soll in einer Exceltabelle eine Schleife programmieren.
Ich habe bisher eine Lösung geschafft, die zwar funktioniert aber nicht so elegant ist, wie sie sein soll. Hier erstmal der VBA-Code für die bestehende Schleife:
Sub Schleife()
Dim Flow As Range
Dim Druckverlust As Range
Dim Druck As Range
Dim DV As Single
Dim ASSFlow As Range
Set Flow = Worksheets(„Druckverluste Steuer-Öl“).Range(„A14“)
Set Druckverlust = Worksheets(„Druckverluste Steuer-Öl“).Range(„B4“)
Set Druck = Worksheets(„Druckverluste Steuer-Öl“).Range(„O3“)
Set ASSFlow = Worksheets(„Druckverluste Steuer-Öl“).Range(„O8“)
If ASSFlow = 0 Then
MsgBox („ASS-Flow darf nicht 0 sein! Bitte einen Wert größer 0 angeben“)
ASSFlow = 0.001
End If
DV = 0.001
Flow = 0
Do
Flow = Flow + DV
Loop Until Druckverlust >= Druck
End Sub
Bisher addiert Excel in Zelle A14 solange 0,001 dazu, bis in Zelle B4 der Wert >= dem Wert in Zelle O3 ist.
Nun soll es jedoch so ablaufen, dass ich z.B. das Intervall DV von mir aus auf 4 setze und Excel sobald der Wert in B4 größer ist als in O3 abbricht. Dann soll vom bisherigen Intervall wieder die Hälfte abgezogen werden. Dann wieder Hälfte… Und das solange, bis der Wert Druckverlust (B4) nur noch ca. 5% größer ist als der Wert Druck (O3). Sollte durch die letzte Operation der Wert in B4 wieder deutlich unter O3 liegen, soll wieder die Hälfte vom gerade benutzen Intervall addiert werden, bis B4 dann ca. 5% kleiner ist als O3.
Also kurz B4 soll sich an O3 bis auf ca. ±5% annähern.
Ich hoffe Ihr könnt mein Anliegen verstehen
Und wie gesagt, ich habe von Programmieren überhaupt keine Ahnung und bin schon froh und stolz darauf, dass ich die bisherige Schleife hinbekommen habe!
Vielen Dank
Daniel
Natürlich kann auch das genaue Ergebnis bei dem Verfahren herauskommen. Ist aber kein Muss.