Eingabemaske-Kommentare
04.04.2014 14:20:49
Dauergast
ich habe folgende Eingabemaske mit dem nachfolgenden Code erstellt. Ich habe ihn auch mit Kommentaren versehen und wollte fragen, ob die eurer Meinung nach ausreichen? Oder was würdet Ihr an den Kommentaren verbessern?
Option Explicit
Option Compare Text
Private Sub CommandButton1_Click()
'Button neuer Eintrag
ClearFields
ListBox1.ListIndex = -1 'neue Zeile wird ausgewählt
TextBox1.SetFocus
End Sub
Private Sub CommandButton2_Click()
'Button Eintrag löschen
Dim lIndex As Long
If ListBox1.ListIndex = -1 Then Exit Sub
lIndex = ListBox1.ListIndex
'Wenn kein Datensatz in der ListBox markiert wurde, wird die Routine beendet
Tabelle1.Rows(ListBox1.Column(1)).Delete
UserForm_Initialize
If ListBox1.ListCount > 0 Then ListBox1.ListIndex = _
WorksheetFunction.Min(lIndex, ListBox1.ListCount - 1)
'Wenn Datensatz in der ListBox markiert wurde, wird der Eintrag gelöscht
End Sub
Private Sub CommandButton3_Click()
'Button Eintrag speichern
Dim lZeile As Long, lIndex As Long
If ListBox1.ListIndex = -1 Then
lZeile = Tabelle1.Cells(Rows.Count, 1).End(xlUp).Row + 1
'Wenn kein Datensatz in der ListBox markiert wurde, wird Speicherroutine beendet
Else
lZeile = ListBox1.Column(1) 'Wenn Datensatz vorhanden, wird Speicherroutine durchgeführt
End If
lIndex = ListBox1.ListIndex
If Trim(TextBox1.Text) = "" Then
Exit Sub
Else
With Tabelle1
.Cells(lZeile, 1).Value = Trim(TextBox1.Text)
.Cells(lZeile, 2).Value = TextBox2.Text
.Cells(lZeile, 3).Value = TextBox3.Text
.Cells(lZeile, 4).Value = TextBox4.Text
.Cells(lZeile, 5).Value = TextBox5.Text
.Cells(lZeile, 6).Value = TextBox6.Text
.Cells(lZeile, 7).Value = TextBox7.Text
.Cells(lZeile, 8).Value = TextBox8.Text
.Cells(lZeile, 9).Value = TextBox9.Text
.Cells(lZeile, 10).Value = TextBox10.Text
.Cells(lZeile, 11).Value = TextBox11.Text
.Cells(lZeile, 12).Value = TextBox12.Text
.Cells(lZeile, 14).Value = TextBox13.Text
.Cells(lZeile, 15).Value = TextBox14.Text
.Cells(lZeile, 16).Value = TextBox15.Text
.Cells(lZeile, 21).Value = TextBox16.Text
.Cells(lZeile, 26).Value = TextBox17.Text
.Cells(lZeile, 30).Value = TextBox18.Text
.Cells(lZeile, 31).Value = TextBox19.Text
.Cells(lZeile, 34).Value = TextBox20.Text
.Cells(lZeile, 35).Value = TextBox21.Text
.Cells(lZeile, 46).Value = TextBox22.Text
.Cells(lZeile, 47).Value = TextBox23.Text
.Cells(lZeile, 48).Value = TextBox24.Text
'Textboxen in die Zellen schreiben
End With
End If
UserForm_Initialize
If lIndex = -1 Then
ListBox1.ListIndex = ListBox1.ListCount - 1
Else
'Die ListBox muss nun neu geladen werden, allerdings nur, wenn sich der Name geändert hat
ListBox1.ListIndex = lIndex
End If
End Sub
Private Sub CommandButton4_Click()
'Button Beenden
Unload Me
End Sub
Private Sub ListBox1_Click()
'ListBox Funktionsweise
Dim lZeile As Long
'Wenn der Benutzer einen Namen anklickt, wird dieser herausgesucht und die Daten werden in _
die Textboxen eingetragen
ClearFields
If ListBox1.ListIndex > -1 Then
lZeile = ListBox1.Column(1)
With Tabelle1
TextBox1 = Trim(.Cells(lZeile, 1).Value)
TextBox2 = .Cells(lZeile, 2).Value
TextBox3 = .Cells(lZeile, 3).Value
TextBox4 = .Cells(lZeile, 4).Value
TextBox5 = .Cells(lZeile, 5).Value
TextBox6 = .Cells(lZeile, 6).Value
TextBox7 = .Cells(lZeile, 7).Value
TextBox8 = .Cells(lZeile, 8).Value
TextBox9 = .Cells(lZeile, 9).Value
TextBox10 = .Cells(lZeile, 10).Value
TextBox11 = .Cells(lZeile, 11).Value
TextBox12 = .Cells(lZeile, 12).Value
TextBox13 = .Cells(lZeile, 14).Value
TextBox14 = .Cells(lZeile, 15).Value
TextBox15 = .Cells(lZeile, 16).Value
TextBox16 = .Cells(lZeile, 21).Value
TextBox17 = .Cells(lZeile, 26).Value
TextBox18 = .Cells(lZeile, 30).Value
TextBox19 = .Cells(lZeile, 31).Value
TextBox20 = .Cells(lZeile, 34).Value
TextBox21 = .Cells(lZeile, 35).Value
TextBox22 = .Cells(lZeile, 46).Value
TextBox23 = .Cells(lZeile, 47).Value
TextBox24 = .Cells(lZeile, 48).Value
'Textboxen füllen
End With
End If
End Sub
Private Sub UserForm_Initialize()
'UserForm Funktionsweise
Dim lZeile As Long, arrList
ClearFields 'Alle Textboxen leeren
With Tabelle1
arrList = .Range(.Cells(2, 1), .Cells(Rows.Count, 1).End(xlUp)).Resize(, 2)
End With
For lZeile = 1 To UBound(arrList)
arrList(lZeile, 2) = lZeile + 1 'Start in Zeile 2, da in Zeile 1 Überschriften
Next
ListBox1.List = arrList
'alle vorhandenen Einträge werden in die Listbox geladen
End Sub
Private Sub ClearFields()
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
TextBox4 = ""
TextBox5 = ""
TextBox6 = ""
TextBox7 = ""
TextBox8 = ""
TextBox9 = ""
TextBox10 = ""
TextBox11 = ""
TextBox12 = ""
TextBox13 = ""
TextBox14 = ""
TextBox15 = ""
TextBox16 = ""
TextBox17 = ""
TextBox18 = ""
TextBox19 = ""
TextBox20 = ""
TextBox21 = ""
TextBox22 = ""
TextBox23 = ""
TextBox24 = ""
End Sub