If-Schleife "reagiert" nicht
09.04.2019 15:44:49
Jonathan
ich habe folgenden Code:
Private Sub berechnen_Click()
For Durchlauf = 1 To bkraft
Worksheets("Reibwertdiagramm").Cells(Durchlauf + 2, 4) = Durchlauf
Bremskraft = (Durchlauf - Fpedalfeder) * iPedal
' "Zeichnung" der Kurve mit drei Knickpunkten für 0.75 bar Unterdruck
If Bremskraft "" And _
Fahrzeugdaten.Phbz.Value "" And _
Fahrzeugdaten.AnzKolben1A.Value "" And _
Fahrzeugdaten.panl.Value "" And _
Fahrzeugdaten.AnzBr1A.Value "" And _
Fahrzeugdaten.uS.Value "" And _
Fahrzeugdaten.hh.Value "" And _
Fahrzeugdaten.rS.Value "" Then
Mb1ADu = Format(Str(4 * Atn(1) * Fahrzeugdaten.Dk1A / 2 * Fahrzeugdaten.Dk1A / 2 * _
Fahrzeugdaten.AnzKolben1A * Fahrzeugdaten.AnzBr1A * (PhbzDu - Fahrzeugdaten.panl) * Fahrzeugdaten.uS * Fahrzeugdaten.hh * Fahrzeugdaten.rS / 10), "0")
Else
Mb1ADu = ""
End If
Worksheets("Reibwertdiagramm").Cells(Durchlauf + 2, 7) = Mb1ADu
' 2. Achse
If Fahrzeugdaten.Dk2A.Value "" And _
Fahrzeugdaten.Phbz.Value "" And _
Fahrzeugdaten.AnzKolben2A.Value "" And _
Fahrzeugdaten.panl.Value "" And _
Fahrzeugdaten.AnzBr2A.Value "" And _
Fahrzeugdaten.uS.Value "" And _
Fahrzeugdaten.hh.Value "" And _
Fahrzeugdaten.rS.Value "" Then
Mb2ADu = Format(Str(4 * Atn(1) * Fahrzeugdaten.Dk2A / 2 * Fahrzeugdaten.Dk2A / 2 * _
Fahrzeugdaten.AnzKolben2A * Fahrzeugdaten.AnzBr2A * (PhbzDu - Fahrzeugdaten.panl) * Fahrzeugdaten.uS * Fahrzeugdaten.hh * Fahrzeugdaten.rS / 10), "0")
Else
Mb2A = ""
End If
Worksheets("Reibwertdiagramm").Cells(Durchlauf + 2, 8) = Mb2ADu
' Bremsmoment pro Rad: MrDu
' 1. Achse
If Berechnungswerte.Mb1A.Value "" And _
Fahrzeugdaten.Ir.Value "" And _
Fahrzeugdaten.eta.Value "" And _
Fahrzeugdaten.eta.Value 0 And _
Fahrzeugdaten.Vorgelegeja.Value = True Then
Mr1ADu = Format(Str(Mb1ADu * Fahrzeugdaten.Ir.Value / Fahrzeugdaten.eta.Value), "0")
Else
If Berechnungswerte.Mb1A.Value "" And _
Fahrzeugdaten.Vorgelegeja.Value = False Then
Mr1ADu = Format(Str(Mb1ADu), "0")
Else
Mr1ADu = ""
End If
End If
Worksheets("Reibwertdiagramm").Cells(Durchlauf + 2, 11) = Mr1ADu
' 2. Achse
If Berechnungswerte.Mb2A.Value "" And _
Fahrzeugdaten.Ir.Value "" And _
Fahrzeugdaten.eta.Value "" And _
Fahrzeugdaten.eta.Value 0 And _
Fahrzeugdaten.Vorgelegeja.Value = True Then
Mr2ADu = Format(Str(Mb2ADu * Fahrzeugdaten.Ir.Value / Fahrzeugdaten.eta.Value), "0")
Else
If Berechnungswerte.Mb2A.Value "" And _
Fahrzeugdaten.Vorgelegeja.Value = False Then
Mr2ADu = Format(Str(Mb2ADu), "0")
Else
Mr2ADu = ""
End If
End If
Worksheets("Reibwertdiagramm").Cells(Durchlauf + 2, 12) = Mr2ADu
' Bremsmoment pro Achse: MaDu
' 1. Achse
If Berechnungswerte.Mr1A.Value "" Then
Ma1ADu = Format(Str(Mr1ADu * 2), "0")
Else
Ma1ADu = ""
End If
Worksheets("Reibwertdiagramm").Cells(Durchlauf + 2, 15) = Ma1ADu
' 2. Achse
If Berechnungswerte.Mr2A.Value "" Then
Ma2ADu = Format(Str(Mr2ADu * 2), "0")
Else
Ma2ADu = ""
End If
Worksheets("Reibwertdiagramm").Cells(Durchlauf + 2, 16) = Ma2ADu
' Bremskraft pro Rad: BrDu
' 1. Achse
If Berechnungswerte.Mr1A.Value "" And _
Fahrzeugdaten.Rdyn.Value "" Then
Br1ADu = Format(Str(Mr1ADu / Fahrzeugdaten.Rdyn.Value), "0")
Else
Br1ADu = ""
End If
Worksheets("Reibwertdiagramm").Cells(Durchlauf + 2, 19) = Br1ADu
' 2. Achse
If Berechnungswerte.Mr2A.Value "" And _
Fahrzeugdaten.Rdyn.Value "" Then
Br2ADu = Format(Str(Mr2ADu / Fahrzeugdaten.Rdyn.Value), "0")
Else
Br2ADu = ""
End If
Worksheets("Reibwertdiagramm").Cells(Durchlauf + 2, 20) = Br2ADu
' Bremskraft pro Achse: BDu
' 1. Achse
If Berechnungswerte.Br1A.Value "" Then
B1ADu = Format(Str(Br1ADu * 2), "0")
Else
B1ADu = ""
End If
Worksheets("Reibwertdiagramm").Cells(Durchlauf + 2, 23) = B1ADu
' 2. Achse
If Berechnungswerte.Br2A.Value "" Then
B2ADu = Format(Str(Br2ADu * 2), "0")
Else
B2ADu = ""
End If
Worksheets("Reibwertdiagramm").Cells(Durchlauf + 2, 24) = B2ADu
Worksheets("Reibwertdiagramm").Cells(Durchlauf + 2, 4) = Durchlauf
Bremskraft = (Durchlauf - Fpedalfeder) * iPedal
'Verzögerung leer zl
' 2-Achser
zl = Format((Int(B1ADu) + Int(B2ADu)) / Fahrzeugdaten.GGl.Value / 9.81, "0.00")
Worksheets("Reibwertdiagramm").Cells(Durchlauf + 2, 27) = zl
'Verzögerung leer mit ABS zlABS
' 2-Achser
zlABS = Int(B1ADu) + Fahrzeugdaten.u.Value * Fahrzeugdaten.GGl.Value * 9.81 * (1 - _
Fahrzeugdaten.G2Al.Value / Fahrzeugdaten.GGl.Value) / (Fahrzeugdaten.GGl.Value * 9.81 * (1 + Fahrzeugdaten.u.Value * (Fahrzeugdaten.Hl.Value / 1000) / (Fahrzeugdaten.L1A2A.Value / 1000)))
If zl
Es geht um die letzte If-Schleife, diese reagiert nicht wie sie soll. Im Endeffekt soll immer der kleinere Wert (je nachdem zl oder zlABS) in die Tabelle geschrieben werden. Es wird aber immer zl in die Tabelle geschrieben, obwohl zlABS ab einem gewissen Punkt kleiner wird. Wo ist mein Fehler?