TheDestroyer86
Grünschnabel
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:
Modul
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:
Visual Basic:
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
Visual Basic:
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