Einträge einer Tabelle über Userform ändern
Bobesch58
Guten Abend allerseits.
Ich möchte Änderungen in einer dreispaltigen Exceltabelle (Vorname, Nachname, Geschlecht) über eine Userform vornehmen. In der Userform gibt es eine dreispaltige Listbox "lbxSchülerÄndern", in die beim Initialisieren die Tabelle eingelesen wird. Über das Changeereignis der Listbox werden die drei Felder der markierten Zeile in jeweils eine Textbox eingelesen (tbxSchÄndVorname, tbxSchÄndNachname, tbxSchÄndGeschl). In den Textboxen sollen die Änderungen vorgenommen und über eine Schaltfläche die geänderten Werte in die Exceltabelle übertragen werden. Ein Auszug des Codes hängt unten an.
Es funktioniert jedoch nur für das erste Textfeld. Nachdem die markiert Zeile in der Sub "cbtSchÄnd_Click" ausgeführt wurde, springt das Programm in die Sub "lbxSchülerÄndern_Change" und übernimmt in die Textfelder tbxSchÄndNachname und tbxSchÄndGeschl wieder die ursprünglichen Werte aus der Listbox.
Was habe ich falsch gemacht?
Viele Grüße
Bobesch58
Option Explicit
Dim iLZ As Integer
Private Sub UserForm_Initialize()
Dim myRange As Range
With ThisWorkbook.Sheets("Vorgaben")
iLZ = .Range("B100").End(xlUp).Row
Set myRange = .Range(.Cells(iEZ, 2), .Cells(iLZ, 4))
lbxSchülerÄndern.RowSource = myRange.Address
End With
End Sub
Private Sub lbxSchülerÄndern_Change()
tbxSchÄndVorname = lbxSchülerÄndern.List(lbxSchülerÄndern.ListIndex, 0)
tbxSchÄndNachname = lbxSchülerÄndern.List(lbxSchülerÄndern.ListIndex, 1)
tbxSchÄndGeschl = lbxSchülerÄndern.List(lbxSchülerÄndern.ListIndex, 2)
End Sub
Private Sub cbtSchÄnd_Click()
Dim strName As String
Dim iCt As Integer
strName = lbxSchülerÄndern.List(lbxSchülerÄndern.ListIndex, 0) & _
lbxSchülerÄndern.List(lbxSchülerÄndern.ListIndex, 1)
With Sheets("Vorgaben")
.Unprotect
For iCt = iEZ To iLZ
If .Cells(iCt, 2) & .Cells(iCt, 3) = strName Then
.Cells(iCt, 2) = tbxSchÄndVorname
.Cells(iCt, 3) = tbxSchÄndNachname
.Cells(iCt, 4) = tbxSchÄndGeschl
Exit For
End If
Next
.Protect
End With
Unload Me
End Sub