Clever-Excel-Forum

Normale Version: Zirkelbezug vermeiden, Wenn Dann Bedingungen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo ihr lieben,

İch schreibe gerade an meiner Bachelor Arbeit und es geht um die Auslegung einer Rudermaschine. 
Hierbei muss ich vorserst ein mindest Drehmoment berechnen in E4 (16000), nun weiss ich wieviel Drehmoment 
meine Ruderanlage mindestens aufbringen muss. Nun kann es der Fall sein, dass eine Rudermaschine bereits 
vorhanden ist welcher jedoch nicht das nötige Drehmoment aufweisen kann, in unserem Beispiel in G4 mit 14000.
Nun möchte ich das das vorerst die Geschwindigkeit A4 um 10% gesenkt wird wenn G4 kleiner sein sollte als E4.
İst danach G4 noch weiterhin kleiner als E4 soll die Ruderflache C4 um 10% verkleinert werden. İst weiterhin G4 kleiner als E4
soll eine Fehlermeldung erscheinen. 
  • Wenn ich nun in die Geschwindigkeitszelle A4 schreibe =(Wenn(G4 < E4;A6*0,9;A6) habe ich ein Zirkelbezug, da es sein kann, dass 
       E4 kleiner sein könnte als G4. 
  • Ich weiss nicht wie ich festlegen kann, dass als erstes die Geschwindigkeit verringert wird und dann die Ruderflaeche.
  • Wie kann ich das erreichen, dass die Geschwindigkeit nur so weit verringert wird, das E4=G4 ist und wie kann ich es erreichen, wenn nach der Steigerung der Geschwindigkeit von 10% die Ruderflaeche so gesteigert wird das G4=E4 ist.
İm Forum habe ich echt viel gesucht und auch bei Youtube bin jedoch nicht fündig geworden.
Hoffe das die Frage gut genug erklaert wurde, gerne Feedback wenn etwas nicht klar sein sollte.
Bei der Erstellung habe ich auf Einheiten verzichtet und die Datei ist auch nicht die Original Datei der Bachelor Arbeit.
Hallo,

da wirst du vermutlich um VBA nicht herumkommen. Zirkelbezüge sind nun mal Zirkelbezüge und die lassen sich (soviel ich weiß) mit Formeln nicht lösen. Was mich aber verwirrt ist, dass du zuerst von einer Verringerung der Geschwindigkeit schreibst, dann aber von einer Steigerung. Was denn nun?
So könnte das Aussehen (nur ist eben der oben erwähnte Punkt mit der Verringerung/Steigerung unklar)

Code:
Option Explicit


Sub Berechnen()
   Call Geschwindigkeit
   Call MinMoment
   Call GeschwindigkeitVerringern
End Sub

Sub Geschwindigkeit()

   Range("A4").Value = Range("A6").Value

End Sub

Sub MinMoment()

   Range("E4").Value = Range("A4").Value * 250 + Range("C4").Value * 500

End Sub

Sub GeschwindigkeitVerringern()

   'Geschwindigkeit um 10 % verringern
   If Range("G4").Value < Range("E4").Value Then
       Range("A4").Value = Range("A4").Value * 0.9
   End If
   
   Call MinMoment
   
   Call GeschwindigkeitErhöhen
   
   Call MinMoment
   
   'Ruderfläche um 10 % verringern
   If Range("G4").Value < Range("E4").Value Then
       Range("C4").Value = Range("C4").Value * 0.9
   End If
   
   Call MinMoment
   
   Call GeschwindigkeitErhöhen
   
   Call MinMoment
   
   If Range("G4").Value < Range("E4").Value Then
       MsgBox "Vorhandenes Rudermoment zu klein!"
   End If

End Sub

Sub GeschwindigkeitErhöhen()

   'Wenn vorhandenes Moment größer als Mindestmoment, dann Geschwindigkeit um X erhöhen
   If Range("G4").Value >= Range("E4").Value Then
       Range("A4").Value = (Range("G4").Value - Range("C4").Value * 500) / 250
   End If
   
End Sub
Vielen Dank für die schnelle Antwort, 

Die Geschwindigkeit soll auf jeden Fall gesenkt werden, hab die Excel Tabelle im Anhang korigiert.
VBA? Huh Da gehts um Programierung oder? Wenn ich da sonst nicht anders raus komme, werde ich wohl anfangen müssen Tutorials anzuschauen.
Vielen vielen Dank für die so schnelle Beantwortung meiner Frage.
Somit kann dieses Thema gerne geschlossen werden Smile
Der Code an sich ist ja fertig, du musst ihn nur kopieren und einfügen
Drücke in deiner Tabelle Alt+F11, dann gelangst du in den Code-Editor. Am linken Rand müsstest du "Tabelle1", "Tabelle2" usw. sehen bzw. die Namen deiner Arbeitsblätter. Doppelklicke auf das Tabellenblatt, in dem du deine Berechnung vornehmen willst, Im großen Fenster sollte nun ein weißes Fenster offen sein. Dorthin kopierst du den Code.

Damit hast du fertige Makros. Rufe das Makro "Berechnen" auf und die Berechnung findet statt.
Wenn du noch Fragen hast, dann melde dich.

Den Beitrag schließen musst du selbst, ist ja schließlich deiner.