Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

VBA- Do Loop until





Frage

Hallo, ich habe folgendes Problem: ich habe im Tabellenblatt "Berechnung" eine Bildlaufleiste mit 4 möglichen Stahlprofilen. Die dazu möglichen Profilhöhen und Widerstandsmomenten sind im Tabellenblatt "Profil". Nun möchte ich mit einer Schleife, dass bei der Wahl eines Stahlprofils (durch Bildlaufleite) Folgende Formel "Spannung=abs(max_M)*1000/ Widerstandsmoment berechnet wird bis spannung <= ST (ST habe ich vorher eingelesen) Für die formel muß also die widersatndsmomente eingelesen werden und bei nicht erfüllen der Bedingung das nächste Widerst. Moment eingelesen werden. Ich hoffe, ich habe mich verständlich ausgedrückt! Bitte um Hilfe!! Gruß Stien

Antwort 1 von CaroS

Hallo Stien,

das hast Du sehr verständlich ausgedrückt - für einen Statiker oder Bauingenieur. In Excel spielen alle diese wunderbaren Dinge aber im Prinzip überhaupt keine Rolle. Jede noch so schöne wissenschaftliche, technische, ökonomische oder sonstige Größe ist hier nichts weiter als eine Zahl. Besonderheiten sind Datums-/Zeitwerte und Währungsangaben, ansonsten werden Maßeinheiten fast ausschließlich wegge-lassen, bestenfalls nachtäglich dranformatiert.

Was hier vor allem interessiert sind Zellen und ihre Inhalte und wie man von den Inhalten einiger Zellen mit Hilfe von Formeln und VBA-Scripten zu Inhalten anderer Zellen kommt. Natürlich gibt es außerdem noch eine ganze Menge mehr, was sicherlich auch bekannt ist und hier nicht extra alles aufgezählt werden muss, aber was Du unter einer "Bildlaufleiste mit 4 möglichen Stahlprofilen" verstehst und ob damit wirklich das Excel-Toolbox-Steuerelement "Bildlaufleiste" gemeint ist, da würde ich schon ganz gerne noch mal nachfragen. Um Missverständnisse zu vermeiden.

Wie kann man mit Deiner Bildlaufleiste ein Stahlprofil auswählen, was passiert da genau? Sind die 4 Stahlprofile diskrete Werte 1, 2, 3 und 4 oder sollen durch die Bildlaufleiste pseudo-kontinuierliche Werte dargestellt werden? In welcher Weise sind da was für Daten daran beteiligt? Da müssten noch ein paar mehr Zusammenhänge hergestellt werden, z. B. was das Ziehen am Steuerelement "Bildlaufleiste" mit welcher/welchen Größe(n) in der Formel =abs(max_M)*1000/ Widerstandsmoment zu tun hat. Ist nicht eine Grenzwertberechnung abs(max_M)*1000/ Widerstandsmoment <= ST anhand der tabellierten Daten auch ohne Iteration und ohne irgendwelche Benutzeraktionen möglich? (Per Lösung einer (Un-)Gleichung?) Welche Daten soll die Schleife durchlaufen?

Und wenn wir dann mal zu den konkreten Daten kommen, welche Daten stehen wo und wie angeordnet?

Gruß,
CaroS

Antwort 2 von Stien

Hallo CaroS,
also meine Bildlaufleiste kommt aus:
Format-Steuerelemente- Kombinationsfeld.
Hier werden für die 4 möglichen Antworten die werte 1,2,3,oder 4 ausgegeben.
Hinter diesen Zahlen stehen keine Werte.

Sie dienen dazu, um auf die entsprechenden W.-Momente zuzugreifen. Ich habe vor der Do loop until Idee folgende anweisung gehabt:

For i2 = 0 To 23
If Worksheets("Berechnung").Range("Profil").Value = "1" And Worksheets("Berechnung").Range("Profilhöhe").Value = i2 + "1" Then Spannung = Format((Abs(max_M) * 1000) / (Worksheets("Profiltabelle").Cells(i2 + 32, 11).Value), "###0.00")
Next i2

Doch hier musste ich auch das Stahlprofil wählen. Das möchte ich nun umgehen in dem mir das Programm gleich das passende Profil aussucht damit Spannung<= ST

Die W.-Momete stehen alle in einer Spalte (untereinander) in der Spalte daneben die Profilhöhen, beide im Tabellenblatt "Profile"

Brauchst du noch weitere Info?

Gruß Christien

Antwort 3 von Stien

...nochmal Danke für die schnelle Antwort CaroS!!

Antwort 4 von CaroS

Hallo Stien,

ich grüble wieder einmal bzw. immer noch, was hier eigentlich Sache ist. In der Frage ist ja von einer Bildlaufleiste die Rede, in AW2 dagegen von einem Kombinationsfeld aus der Steuerelemente-Toolbox. Dazu kommen Bemerkungen, die mich immer noch und immer wieder leicht verwirren:
"Hier werden für die 4 möglichen Antworten die werte 1,2,3,oder 4 ausgegeben." - Ausgegeben?
"Hinter diesen Zahlen stehen keine Werte." - Was meint die Autorin?

Ich trage mal zusammen, was ich darüber weiß: Ein Kombinationsfeld (Toolbox-Steuerelement) ist ein harmloses Element. Es verfügt über eine ListFillRange, also einen zugeordneten Bereich zusammenhängender Zellen, die die auswählbaren Werte enthalten, also zusammengenommen den "Wertebereich" des Kombinationsfeldes.

Außerdem gibt es eine LinkedCell, eine zugeordnete Zelle, in der der (einzelne) Werte steht, der mit Hilfe des Kombinationsfeldes aus den möglichen Werten ausgewählt wurde. Gut, da sich das Kombinationsfeld und die "Ergebniszelle" gegenseitig in beiden Richtungen synchronisieren, kann man genauso gut auch in die "Ergebniszelle" einen Wert eintragen, der dann ins Kombinationsfeld übernommen wird. (Auf diese Weise kann man sogar Werte ins Kombinationsfeld "einschleusen", die überhaupt nicht im Wertebereich enthalten sind.)

Aber all das ist doch, in einem Stadium, wo ich meilenweit von einer funktionierenden Anwendung, von der Lösung der Hauptprobleme entfernt bin, der reinste Kinderkram, absolute Spielerei, einfach Unfug. (Auch einen Bildlaufleiste kann man so umfunktionieren, dass man damit den Wert 1, 2, 3 oder 4 auswählen und einer Zelle zuordnen kann, aber dafür gilt genau dasselbe.)

Wenn ich in irgendeiner Zelle den Wert 1, 2, 3 oder 4 brauche, gucke ich mir eine freie Zelle aus und schreibe den benötigten Wert dort hinein, fertig! Und schon kann ich damit arbeiten.

Wo und wie wird nun aber der Wert 1, 2, 3 oder 4 benutzt oder verarbeitet? In der gesamten restlichen Erklärung tun sich nur noch riesige Löcher auf, datenmäßige Zusammenhänge zu der inzwischen mehrfach angegeben Ungleichung
Spannung = max_M * 1000 / Worksheets("Profiltabelle").Cells(?, ?).Value <= ST sind völlige Fehlanzeige!

Diese Zusammenhänge existieren sicherlich in Deiner Aufgabe und in Deiner Vorstellung von der Lösung, aber das findet bisher ausschließlich in Deinem Kopf statt. Zu lesen ist davon hier nichts. Es gibt in diesem Thread nach Deinen Angaben folgende "Dinge":

Worksheets("Berechnung") - ein Tabellenblatt
Worksheets("Berechnung").Range("Profil").Value - ein Wert in einer Zelle
Worksheets("Berechnung").Range("Profilhöhe").Value - noch ein Wert in einer Zelle
max_M - eine Konstante oder Variable
1000 - eine Konstante
Worksheets("Profiltabelle") - noch ein Tabellenblatt
Worksheets("Profiltabelle").Cells(?, ?).Value) - viele Werte in Zellen, die eine Reihe (oder mehrere Reihen?) von Widerstandsmomenten darstellen
Spannung - eine Größe, die nach der Formel =abs(max_M)*1000/ Widerstandsmoment berechnet wird
ST - ein Grenzwert, unter dem die Spannung liegen soll

Welches "Ding" oder welche "Dinge" haben jetzt mit dem Wert 1, 2, 3 oder 4 in der Zelle (bzw. im Kombinationsfeld) etwas zu tun und was konkret? Wenn in der Zelle der Wert 2 steht, mit welchem dieser 11 Dinge passiert dann was genau?

Es geht hier noch lange nicht darum loszuprogrammieren, sondern erstmal darum loszudenken. Nicht darum, was in irgendeinem Excel-Code, egal ob Schleife oder was auch immer passiert, sondern erstmal darum, den (logischen und datenmäßigen) Zusammenhang zwischen all den Dingen, mit denen Du hier hantierst, aufzudecken und ordentlich zu beschreiben, dabei aus dem geistigen Gestrüpp rauszukommen und die noch offenen Lücken zu schließen.

Oben heißt es, "Profilhöhen und Widerstandsmomente sind im Tabellenblatt ´Profil´". Abgesehen davon, dass das Tabellenblatt vielleicht auch "Profiltabelle" heißt, gibt es da vielleicht Werte für 4 verschiedene Profile: ein L-Profil, ein U-Profil, ein H-Profil und ein T-Profil (- oder vielleicht auch nicht), aber irgendwie muss jetzt mal geklärt werden, wie Du vorhast, von der Zelle mit dem Wert 2 (oder 1 oder 3 oder 4) zu den entsprechenden Daten und den nächsten Verarbeitungsschritten zu kommen.

So, ich denke, ich mache hier jetzt mal ´ne Pause, das Thema verteilt sich ja leider auch noch auf mindestens 2 weitere Threads, und lasse Dich mal zu Wort kommen.

Gruß,
CaroS

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


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: