Thema Datum  Von Nutzer Rating
Antwort
Rot Absegnung erstes VBA Projekt
15.02.2018 17:34:10 Max
NotSolved
15.02.2018 18:23:05 Gast44836
NotSolved

Ansicht des Beitrags:
Von:
Max
Datum:
15.02.2018 17:34:10
Views:
874
Rating: Antwort:
  Ja
Thema:
Absegnung erstes VBA Projekt
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
 'Programm zu Erechnen von Reisegesamtpreis
 'Konstanten
 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
 'Variablen
 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
 'Eingaben
 'Eingaben Erwachsene
 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
 'Kinder über 8 Jahre
 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)
 'Kinder unter 8 Jahre
 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)
 'Flughafenwahl
 TextBox7.Text = ComboBox1.Text
 If TextBox7.Text = "" Then
 MsgBox("Flughafen muss ausgewählt werden", MsgBoxStyle.Exclamation,
"Warnung")
 Return
 End If
 ' Berechnen
 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
 'Verpflegunswahl/Verpflegungskosten berechnen
 If RadioButton1.Checked = True Then
 VK = GZ_Zahler * Verpf_All_incl
 Else : VK = GZ_Zahler * Verpf_HP
 End If
 'Ausflugswahl / Ausflugskosten berechnen
 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
 ' Ausgabe
 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 ' Zahlen, Backspace
 Case Else ' alle anderen Eingaben unterdrücken
 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 ' Zahlen, Backspace
 Case Else ' alle anderen Eingaben unterdrücken
 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 ' Zahlen, Backspace
 Case Else ' alle anderen Eingaben unterdrücken
 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

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Absegnung erstes VBA Projekt
15.02.2018 17:34:10 Max
NotSolved
15.02.2018 18:23:05 Gast44836
NotSolved