Hallo,
ich muss die Tage mein erstes VBA Projekt für die Uni (muss ein Informatik Modul belegen) verteigen und es läuft soweit auch ganz gut.
Es geht um einen Rechner, der auf Basis von Eingaben verschiedener Anzahl an Personen und Ausflüge den Reisepreis ermittelt.
Ich habe von Komillitonen gehört, dass häufig die Frage kommt wo man am Code noch hätte sparen können , um das Ganze
"einfacher"
zu machen.
Könnte mal kurz jemand drüberschauen und hätte eine Idee dazu? Code wurde schon eingereicht, es geht dann also nur noch um hypothetische Fragen.
Danke im Vorraus :)
Public
Class
Form1
Inherits
System.Windows.Forms.Form
Const
Erw_Preis
As
Integer
= 400
Const
Kind_8_Preis
As
Integer
= 200
Const
Kind_7_Preis
As
Integer
= 100
Const
Verpf_All_incl
As
Integer
= 200
Const
Verpf_HP
As
Integer
= 50
Const
Preis_Kairo
As
Integer
= 100
Const
Preis_Karnak
As
Integer
= 80
Const
Preis_Luxor
As
Integer
= 90
Dim
Erw
As
Integer
= 0
Dim
Kind_8
As
Integer
= 0
Dim
Kind_7
As
Integer
= 0
Dim
Kosten_Erw
As
Integer
= 0
Dim
Kosten_Kind_8
As
Integer
= 0
Dim
Kosten_Kind_7
As
Integer
= 0
Dim
Kinderzahl
As
Integer
= 0
Dim
VK
As
Integer
= 0
Dim
Verpf_Wahl
As
Integer
= 0
Dim
GZ_Zahler
As
Integer
= 0
Dim
Kairo
As
Integer
= 0
Dim
Luxor
As
Integer
= 0
Dim
Karnak
As
Integer
= 0
Dim
AK
As
Integer
= 0
Dim
Gesamtkosten
As
Integer
= 0
Public
Sub
Button1_Click(
ByVal
sender
As
System.
Object
,
ByVal
e
As
System.EventArgs)
Handles
Button1.Click
If
Not
IsNumeric(TextBox1.Text)
Then
MsgBox(
"Anzahl Erwachsene muss eine Zahl sein!"
, MsgBoxStyle.Exclamation,
"Warnung"
)
Return
End
If
If
Not
CDbl
(TextBox1.Text) > 0
Then
MsgBox(
"Mindestens ein Erwachsener!"
, MsgBoxStyle.Exclamation,
"Warnung"
)
Return
End
If
If
Not
CDbl
(TextBox1.Text) < 5
Then
MsgBox(
"Maximal 4 Erwachsene!"
, MsgBoxStyle.Exclamation,
"Warnung"
)
Return
End
If
Erw =
CInt
(TextBox1.Text)
If
Not
IsNumeric(TextBox2.Text)
Then
MsgBox("Anzahl Kinder über 8 Jahre muss
MsgBox(
"Bitte Anzahl der Kinder über 8 Jahre angeben!!"
,
MsgBoxStyle.Exclamation,
"Warnung"
)
Return
End
If
If
Not
CDbl
(TextBox2.Text) < 4
Then
MsgBox(
"Maximal 3 Kinder über 8 Jahre!"
, MsgBoxStyle.Exclamation,
"Warnung"
)
Return
End
If
Kind_8 =
CInt
(TextBox2.Text)
If
Not
IsNumeric(TextBox3.Text)
Then
MsgBox(
"Anzahl Kinder unter 8 Jahre muss eine Zahl sein!"
,
MsgBoxStyle.Exclamation,
"Warnung"
)
Return
End
If
If
Not
CDbl
(TextBox3.Text) >= 0
Then
MsgBox(
"Bitte Anahl der Kinder unter 8 Jahre angeben!"
,
MsgBoxStyle.Exclamation,
"Warnung"
)
Return
End
If
If
Not
CDbl
(TextBox3.Text) < 4
Then
MsgBox(
"Maximal 3 Kinder unter 8 Jahre!"
, MsgBoxStyle.Exclamation,
"Warnung"
)
Return
End
If
Kind_7 =
CInt
(TextBox3.Text)
TextBox7.Text = ComboBox1.Text
If
TextBox7.Text =
""
Then
MsgBox(
"Flughafen muss ausgewählt werden"
, MsgBoxStyle.Exclamation,
"Warnung"
)
Return
End
If
Kosten_Erw = Erw * Erw_Preis
Kinderzahl = Kind_8 + Kind_7
If
Kinderzahl < 0
Then
Kosten_Kind_8 = 0
Kosten_Kind_7 = 0
Else
If
Kind_8 > 0
Then
Kosten_Kind_8 = Kind_8 * Kind_8_Preis
Else
: Kosten_Kind_8 = 0
End
If
If
Kind_7 > 0
Then
Kosten_Kind_7 = Kind_7 * Kind_7_Preis
Else
: Kosten_Kind_7 = 0
End
If
End
If
GZ_Zahler = Erw + Kind_8
If
RadioButton1.Checked =
True
Then
VK = GZ_Zahler * Verpf_All_incl
Else
: VK = GZ_Zahler * Verpf_HP
End
If
If
CheckBox2.Checked =
True
Then
Karnak = Preis_Karnak * GZ_Zahler
Else
: Karnak = 0
End
If
If
CheckBox3.Checked =
True
Then
Luxor = Preis_Luxor * GZ_Zahler
Else
: Luxor = 0
End
If
If
CheckBox1.Checked =
True
Then
Kairo = Preis_Kairo * GZ_Zahler
Else
: Kairo = 0
End
If
AK = Kairo + Luxor + Karnak
Gesamtkosten = Kosten_Erw + Kosten_Kind_8 + Kosten_Kind_7 + VK + AK
TextBox4.Text = Kosten_Erw
TextBox5.Text = Kosten_Kind_8
TextBox6.Text = Kosten_Kind_7
TextBox7.Text = ComboBox1.Text
TextBox8.Text = VK
TextBox9.Text = AK
TextBox10.Text = Format(Gesamtkosten,
"000 €"
)
End
Sub
Private
Sub
TextBox1_KeyPress(
ByVal
sender
As
Object
,
ByVal
e
As
System.Windows.Forms.KeyPressEventArgs)
Handles
TextBox1.KeyPress
Select
Case
Asc(e.KeyChar)
Case
48
To
57, 8
Case
Else
e.Handled =
True
End
Select
End
Sub
Private
Sub
TextBox2_KeyPress(
ByVal
sender
As
Object
,
ByVal
e
As
System.Windows.Forms.KeyPressEventArgs)
Handles
TextBox2.KeyPress
Select
Case
Asc(e.KeyChar)
Case
48
To
57, 8
Case
Else
e.Handled =
True
End
Select
End
Sub
Private
Sub
TextBox3_KeyPress(
ByVal
sender
As
Object
,
ByVal
e
As
System.Windows.Forms.KeyPressEventArgs)
Handles
TextBox3.KeyPress
Select
Case
Asc(e.KeyChar)
Case
48
To
57, 8
Case
Else
e.Handled =
True
End
Select
End
Sub
Private
Sub
Button2_Click(
ByVal
sender
As
System.
Object
,
ByVal
e
As
System.EventArgs)
Handles
Button2.Click
End
End
Sub
End
Class