Hallo Sebastian.
An die entsprechenden Daten kommst Du, wenn Du die ListIndex-Eigenschaft der ComboBoxen verwendest. Zu beachten wäre dabei, daß der 1. Eintrag in der ComboBox den ListIndex 0 hat, der zweite Eintrag den ListIndex 1 usw.
Um die ListIndex-Eigenschaft nutzen zu können, muß aber die BoundColumn-Eigenschaft auf 0 gesetzt werden.
Ich habe mal die Datei runtergeladen und den Code ein wenig angepaßt.
In der UserForm chngstudent
Private Sub Schreibe\_TextBoxen()
txtLast.Text = Sheet1.Cells(StudentName.ListIndex + 2, Last)
txtFirst.Text = Sheet1.Cells(StudentName.ListIndex + 2, First)
txtTel.Text = Sheet1.Cells(StudentName.ListIndex + 2, Fon)
End Sub
Private Sub StudentName\_Change()
If ExitEvent = True Then Exit Sub
Tel.ListIndex = StudentName.ListIndex
Schreibe\_TextBoxen
End Sub
Private Sub Tel\_Change()
If ExitEvent = True Then Exit Sub
StudentName.ListIndex = Tel.ListIndex
Schreibe\_TextBoxen
End Sub
Private Sub UserForm\_Initialize()
Dim iRow As Long
Dim i As Integer
ExitEvent = True
'find first empty row in database
iRow = Sheet1.Cells(Rows.Count, 1) \_
.End(xlUp).Offset(1, 0).Row
StudentName.Clear
Tel.Clear
For i = 2 To iRow - 1
StudentName.AddItem Sheet1.Cells(i, 2) + " " + Sheet1.Cells(i, 1)
Tel.AddItem Sheet1.Cells(i, 3)
Next
ExitEvent = False
End Sub
Private Sub cmdChange\_Click()
'copy data to the database
Sheet1.Cells(StudentName.ListIndex + 2, Last).Value = txtLast.Value
Sheet1.Cells(StudentName.ListIndex + 2, First).Value = txtFirst.Value
Sheet1.Cells(StudentName.ListIndex + 2, Fon).Value = txtTel.Value
'clear the data
txtLast.Value = ""
txtFirst.Value = ""
txtTel.Value = ""
txtLast.SetFocus
End Sub
Private Sub CmdDone\_Click()
Unload Me
End Sub
In Modul1
Public ExitEvent As Boolean
Public Const First As Long = 2
Public Const Last As Long = 1
Public Const Fon As Long = 3
Sub Button1\_Click()
frmstudent.Show
End Sub
Sub Button2\_Click()
chngstudent.Show
End Sub
Kannst Du ja mal ausprobieren.
Viele Grüße
Carsten