Visual Basic Excel ElseIf Problem

  • Excel

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Solaris.

    Visual Basic Excel ElseIf Problem

    Hallo,

    Ich habe ein Problem mit meinem If/Else If rechner.
    Es ist so das wenn ich
    If Personen <= 1 Then

    ElseIf Tage <= 4 Then
    Gebühr = 45 * Personen * Tage

    ElseIf Tage <= 7 Then
    Gebühr = 45 * Personen * Tage * 0.85
    Else
    MsgBox "Diese Jugendherberge bietet max. 7 Übernachtungen an", vbExclamation, "DJB-Gebührenrechner"
    txtTage = " "
    txtTage.SetFocus

    End If

    If Personen <= 2 Then

    ElseIf Tage <= 4 Then
    Gebühr = 40 * Personen * Tage

    ElseIf Tage <= 7 Then
    Gebühr = 40 * Personen * Tage * 0.85
    Else
    MsgBox "Diese Jugendherberge bietet max. 7 Übernachtungen an", vbExclamation, "DJB-Gebührenrechner"
    txtTage = " "
    txtTage.SetFocus
    End If
    Eingebe und bei Personen und bei Tagen 1 rein schreibe bei meinem Rechner das Ergebnis 0 wird.
    Ich kann es nur dann lösen wenn ich das < bei If Personen <= 1/2 then entferne. Aber dann passiert so das es bei 1 *40 rechnet und bei 2 *45 Rechnet.
    Kann mir einer so schnell wie möglich helfen ? :?: :(
    Ahoi,

    wenn du bei eine Person hast, wird gar nichts gerechnet. Der ElseIf-Zweig wird erst erreicht, wenn die erste Aussage falsch ist. Du solltest dich mit der Struktur nochmal beschäftigen.
    Und ein Vorschlag zur Güte "So schnell wie möglich" bedeutet meist keine Lust auf Recherche und Eigeninitiative.
    Aber gut ...
    Als erstes würde ich die sich wiederholende Abfrage ob Tage > 7 um die Verzweigungen drumherum legen. Somit tritt sie nur noch einmal auf.
    Was du wohl eher erreichen wolltest, ist so etwas.

    VB.NET-Quellcode

    1. if Personen <= 1 then
    2. Tagessatz = 40
    3. elseif Personen <=2 then
    4. Tagessatz = 45
    5. endif
    6. if Tage <= 4
    7. Zusatz = 1
    8. elseif Tage <= 7
    9. Zusatz = 0.85
    10. Gebühr = Tagessatz * Personen * Tage * Zusatz


    Die Ganze Sache wird natürlich noch interessanter, wenn du es mit 3 Personen versuchst. Wie weit möchtest du damit gehen. Ich würde dir an deiner Stelle raten die ein anderes Konstrukt einfallen zu lassen. Das einfachste währe wohl dir ein Sammlung zu erstellen, in der Personen und der Tagessatz (wenn ich das richtig herausgelesen habe ist das ein Tagessatz) eine art Beziehung haben. Vielleicht ein 2 - dimensionales Array oder einer Gebührenliste in deinem Excel-Sheet ... Aber vielleicht bist du auch einfach mit meinem Vorschlag schon zufrieden und denkst gar nicht daran daraufhin weiter zu recherchieren.
    Grüße Manu

    Was Gott dem Menschen erspart hat, kann der Computer.
    Billy ©, (*1932), Schweizer Aphoristiker
    Quelle: www.Aphorismen.de