Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Schleife in VBA





Frage

Hallo, ich brauche dringend Hilfe bei einer Schleife! in meinem Tabellenblatt(1) habe ich ein Kombinationsfeld (Format-Steuerelemente- Kombinationsfeld) Dort kann ich zwischen 4 möglichen varianten wählen die dann als Nummer 1,2,3,oder 4 ausgegeben werden. Nun möchte ich, dass z. B. bei der wahl von "1" folgende Bedingung erfüllt wird: Spannung = (max_M* 1000) / (Worksheets("2").Cells(i+ 5, 11).Value), (der Nenner soll aus dem tabellenblatt "2" eingelesen werden und zeilenweise abgearbeitet werden bis folgende Bedingung erfült wird Spannung<= ST ) ST und max_M habe ich vorher definiert. Wie muss die schleife nun genau aussehen? Ich habe das mit einer do loop until- anweisung probiert, aber das hat nicht geklappt... Bitte um Hilfe!! Danke, Stien

Antwort 1 von CaroS

Hallo Stien,

auch hier fehlt der Zusammenhang, was die 1 mit der angegeben Formel und der Un-gleichung zu tun hat, wie die 1 das ganze Geschehen beeinflusst und was zu tun wäre, wenn der Wert nicht 1, sondern 2, 3 od. 4 wäre. Aber das hatte ich wohl schon erwähnt.

Außerdem ahnt man mehr als man weiß, dass hier eine Folge von Iterationsschritten (gleichartigen Rechenschritten) durchgeführt werden soll, und als einzige sinnvolle Annahme bleibt als Laufindex wohl nur das i, aber auch dazu hast Du nicht wenigstens noch geschrieben, von welchem Wert bis zu welchem das i laufen soll (kann, muss). Was erwartest Du?

Das Tabellenblatt hat hier zur Abwechslung mal gar keinen Namen mehr, sondern nur noch eine Nummer (2), aber wie es darauf aussieht, weiß kein Mensch (außer Dir).

Zudem frage ich mich immer wieder, wieso hier Elektronen bemüht werden und nicht Neuronen, denn die zu lösende Ungleichung hat die schrecklich einfache Form
m * 1000 / W <= ST, wobei W offenbar die einzige Unbekannte ist. Also kann man nach W umstellen und heraus kommt W >= m * 1000 / ST.

Solange m und ST konstant sind, braucht man W nur einmal und nie wieder berechnen. Und falls sich diese Werte doch ändern, kann man die Gleichung
W_0 = m * 1000 / ST als Formel fest hinterlegen und sucht dann in der Tabelle
nach W >= W_0.

Dafür braucht man aber keine Schleife und keine komplizierte Rechenvorschrift, sondern einfach nur die fertig umgestellte Formel. Das ist ungefähr Mathematik-Unterricht Klasse 6: Lösen von Ungleichungen.
(Genau genommen müsste man beim Umformen noch darauf achten, dass zumindest W und ST nichtnegativ sind, aber das dürfte wohl der Fall sein.)

So viel für´s erste dazu. Gruß,
CaroS

_____
(Mit S = m * 1000 / W kann man S <= ST schreiben, aber das ist genau dasselbe in grün und kaum der Erwähnung wert.)

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: