AW: Stammdaten Maske
17.03.2014 10:41:49
Dauergast
Hallo,
danke zunächst für die Antworten. Ich habe über das Wochenende meinen Code überarbeitet und modifiziert. Zur Excel Tabelle nochmal: In Spalte A steht der Name. in Spalte B das Geburtsdatum, in Spalte C die Straße, in Spalte D die PLZ/ORT und in Spalte E die Ausbildung. Uwe hat das in seiner Datei auch richtig abgebildet!...Zu meinem neuen Code: Ich habe nun insgesamt 4 Befehlsschaltflächen, nämlich "Neuer Eintrag", "Speichern", "Löschen", "Beenden". Durch "Neuer Eintrag" wird ein neuer Name in die Tabelle eingetragen, durch "Löschen" werden bereits vorhandene Daten gelöscht, durch "Speichern" werden meine Änderungen gespeichert und durch "Beenden" schließt sich die Eingabemaske. Außerdem habe ich in der Userform eine Listbox integriert, die mir die jeweiligen Namen anzeigt.
Im Folgenden mein Code:
Option Explicit
Option Compare Text
Private Sub CommandButton1_Click()
Dim lZeile As Long
lZeile = 2
Do While Trim(CStr(Tabelle1.Cells(lZeile, 1).Value)) ""
lZeile = lZeile + 1
Loop
Tabelle1.Cells(lZeile, 1) = CStr("Neuer Eintrag Zeile " & lZeile)
ListBox1.AddItem CStr("Neuer Eintrag Zeile " & lZeile)
ListBox1.ListIndex = ListBox1.ListCount - 1
End Sub
Private Sub CommandButton2_Click()
Dim lZeile As Long
If ListBox1.ListIndex = -1 Then Exit Sub
lZeile = 2
Do While Trim(CStr(Tabelle1.Cells(lZeile, 1).Value)) ""
If ListBox1.Text = Trim(CStr(Tabelle1.Cells(lZeile, 1).Value)) Then
Tabelle1.Rows(CStr(lZeile & ":" & lZeile)).Delete
Call UserForm_Initialize
If ListBox1.ListCount > 0 Then ListBox1.ListIndex = 0
Exit Do
End If
lZeile = lZeile + 1
Loop
End Sub
Private Sub CommandButton3_Click()
Dim lZeile As Long
If ListBox1.ListIndex = -1 Then Exit Sub
If Trim(CStr(TextBox1.Text)) = "" Then
Exit Sub
End If
lZeile = 2
Do While Trim(CStr(Tabelle1.Cells(lZeile, 1).Value)) ""
If ListBox1.Text = Trim(CStr(Tabelle1.Cells(lZeile, 1).Value)) Then
Tabelle1.Cells(lZeile, 1).Value = Trim(CStr(TextBox1.Text))
Tabelle1.Cells(lZeile, 2).Value = TextBox2.Text
Tabelle1.Cells(lZeile, 3).Value = TextBox3.Text
Tabelle1.Cells(lZeile, 4).Value = TextBox4.Text
Tabelle1.Cells(lZeile, 5).Value = TextBox5.Text
If ListBox1.Text Trim(CStr(TextBox1.Text)) Then
Call UserForm_Initialize
If ListBox1.ListCount > 0 Then ListBox1.ListIndex = 0
End If
Exit Do
End If
lZeile = lZeile + 1
Loop
End Sub
Private Sub CommandButton4_Click()
Unload Me
End Sub
Private Sub ListBox1_Click()
Dim lZeile As Long
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
TextBox4 = ""
TextBox5 = ""
If ListBox1.ListIndex >= 0 Then
lZeile = 2
Do While Trim(CStr(Tabelle1.Cells(lZeile, 1).Value)) ""
If ListBox1.Text = Trim(CStr(Tabelle1.Cells(lZeile, 1).Value)) Then
TextBox1 = Trim(CStr(Tabelle1.Cells(lZeile, 1).Value))
TextBox2 = Tabelle1.Cells(lZeile, 2).Value
TextBox3 = Tabelle1.Cells(lZeile, 3).Value
TextBox4 = Tabelle1.Cells(lZeile, 4).Value
TextBox5 = Tabelle1.Cells(lZeile, 5).Value
Exit Do
End If
lZeile = lZeile + 1
Loop
End If
End Sub
Private Sub UserForm_Activate()
If ListBox1.ListCount > 0 Then ListBox1.ListIndex = 0
End Sub
Private Sub UserForm_Initialize()
Dim lZeile As Long
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
TextBox4 = ""
TextBox5 = ""
TextBox6 = ""
ListBox1.Clear
lZeile = 2
Do While Trim(CStr(Tabelle1.Cells(lZeile, 1).Value)) ""
ListBox1.AddItem Trim(CStr(Tabelle1.Cells(lZeile, 1).Value))
lZeile = lZeile + 1
Loop
End Sub
Mein Problem ist nun Folgendes: Zwar öffnet sich die Eingabemaske, und bestehende Daten werden dort auch angezeigt, doch steht unter Name in der Eingabemaske der Geburtstag, unter Geburtsdatum wird die Straße angezeigt und unter der Straße der Name. Unter PLZ/Ort wird auch tatsächlich PLZ bzw Ort angezeigt und bei Ausbildung ebenso.
Kann mir diesbezüglich jemand helfen?