# brauche Hilfe bei BMI-Programm



## TheDestroyer86 (7. Januar 2007)

Hi, nutze Visula-Basic so wie es in Excel vorkommt. 

Hab eine Aufgabe, bei welcher ich wieder mal den BMI berechnen und anschliessend auswerten soll. Die Eingabe von Größe und Gewicht erfolgt in jeweils einer textBox. Die Eingabe des Alters, welches für die Auswertung notwendig ist erfolgt hingegen über eine ComboBox. Mein StartButton soll nur freigegeben werden wenn in den TextBoxen Zahlen stehen und wenn in der ComboBox ein Alter gewählt wurde. 
Für die umsetztung soll ich ein Formular und ein Modul verwenden ( siehe unten). 
Ich habe jetzt das Problem mit der Freigabe des Buttons und das mein Programmn nicht startet, was daran liegt dass das Modul nicht richtig im Formular verwendet wird. 

ICh hoffe jemand von euch kann mir bei diesem Problem helfen, da es wirklich wichtig für mich ist. 

Danke 

Formular: 

```
Option Explicit

Private Sub CommandButton1_Click()
Dim groesse As Single
Dim gewicht As Single
Dim eingabeok As Single
Dim bmiwert As Single


If (TextBox1.Text <> "") And (TextBox2.Text <> "") Then
   
    eingabeok = True
    
    groesse = TextBox1.Text
    gewicht = TextBox2.Text
    
    If eingabeok Then

    bmiwert = bmi(groesse, gewicht)
    TextBox3.Text = bmiwert
    MsgBox (check(bmiwert, ComboBox1.Value))
    
    If (groesse < 1.5) Then
        MsgBox ("Bitte eine Größe über 1,50m angeben")
        TextBox1.Text = ""
        TextBox1.SetFocus
        TextBox3.Text = ""
        eingabeok = False
    End If
    If (groesse > 2.5) Then
        MsgBox ("Bitte eine Größe unter 2,50m angeben")
        TextBox1.Text = ""
        TextBox1.SetFocus
        TextBox3.Text = ""
        eingabeok = False
    End If
    
    If (gewicht < 45 And gewicht) Then
        MsgBox ("Bitte ein Gewicht über 45kg angeben")
        TextBox2.Text = ""
        TextBox2.SetFocus
        TextBox3.Text = ""
        eingabeok = False
    End If
    If (gewicht > 200) Then
        MsgBox ("Bitte ein Gewicht unter 200kg angeben")
        TextBox2.Text = ""
        TextBox2.SetFocus
        TextBox3.Text = ""
        eingabeok = False
    End If

Else
    MsgBox ("Bitte Größe, Gewicht angeben!")
End If

End If

            

End Sub

Private Sub CommandButton2_Click()
'löst neue Berechnung aus
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
End Sub

Private Sub UserForm_Click()
'prüft Freigabe CommandButton1

End Sub

Private Sub UserForm_Initialize()
ComboBox1.AddItem "19 bis 24"
ComboBox1.AddItem "25 bis 34"
ComboBox1.AddItem "35 bis 44"
ComboBox1.AddItem "45 bis 54"
ComboBox1.AddItem "55 bis 64"
Label1.Caption = " BMI "
CommandButton1.AutoSize = True
CommandButton1.Caption = "Eingabe, Berechnen, Ausgabe"
UserForm2.Caption = "Berechnung des BMI, Beenden mit DblClick auf UserForm"
Label1.Caption = " BMI "

Label4.Caption = "fuer Freigabe Button: auf UserForm clicken"
CommandButton2.Caption = "neue Berechnung ?"

End Sub
Private Sub UserForm_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Unload UserForm2
End Sub
```

Modul

```
Public Sub start_userform2()
UserForm2.Show
End Sub
'hier: Function bmi einfuegen
Function bmi(ByVal groesse As Single, ByVal gewicht As Single) As Single
    bmi = Round(gewicht / (groesse * groesse), 2)
End Function



Public Sub check(ByVal bmi As Single, ByVal te As String)
'oder Byval te As Integer
Select Case te
            Case 1:
                Select Case bmi
                    Case Is < 19
                        check = "BMI zu gering"
                    Case Is <= 24
                        check = "BMI optimal"
                    Case Is > 24
                        check = "BMI zu hoch"
                End Select
            Case 2:
                Select Case bmi
                    Case Is < 20
                        check = "BMI zu gering"
                    Case Is <= 25
                        check = "BMI optimal"
                    Case Is > 25
                        check = "BMI zu hoch"
                End Select
            Case 3:
                Select Case bmi
                    Case Is < 21
                        check = "BMI zu gering"
                    Case Is <= 26
                        check = "BMI optimal"
                    Case Is > 26
                        check = "BMI zu hoch"
                End Select
            Case 4:
                Select Case bmi
                    Case Is < 22
                        check = "BMI zu gering"
                    Case Is <= 27
                        check = "BMI optimal"
                    Case Is > 27
                        check = "BMI zu hoch"
                End Select
            Case 5:
                Select Case bmi
                    Case Is < 23
                        check = "BMI zu gering"
                    Case Is <= 28
                        check = "BMI optimal"
                    Case Is > 28
                        check = "BMI zu hoch"
                End Select
        End Select

End Sub
```


----------



## DrSoong (7. Januar 2007)

Hab dir schon im VB-Forum auf Boardy.de geantwortet.


Der Doc!


----------

