Ich habe eine Excel-Tabelle mit den Spalten Vorname / Name / Telefonnummer. Eine Userform zur Eingabe neuer Datensaetze habe ich bereits zum Laufen gebracht. Die neuen Datensaetze werden am Ende des Sheets hinzugefuegt.
Jetzt wuerde ich gerne eine Userform erstellen, die mir die Moeglichkeit bietet vorhandene Datensaetze zu veraendern. Dafuer habe ich eine Userform erstellt mit 3 ComboBoxen im oberenen Teil wo man nach dem gewueschten Vornamen/Namen/Telefonnummer suchen kann und im unteren Teil soll dann, nachdem man in einer ComboBox einen entsprechenden Eintrag gewaehlt hat der komplette Datensatz in 3 Textboxen angezeigt werden, so dass man ihn modifizieren kann.
Kann mir jemand sagen, wie ich das realisieren kann? Habe schon mehrere Sachen probiert, bin soweit jedoch klaeglich gescheitert.
Ueber eine Antwort wuerde ich mich sehr freuen. Vielen Dank im Voraus.
Ich habe eine Excel-Tabelle mit den Spalten Vorname / Name /
Telefonnummer. Eine Userform zur Eingabe neuer Datensaetze
habe ich bereits zum Laufen gebracht. Die neuen Datensaetze
werden am Ende des Sheets hinzugefuegt.
Jetzt wuerde ich gerne eine Userform erstellen, die mir die
Moeglichkeit bietet vorhandene Datensaetze zu veraendern.
Dafuer habe ich eine Userform erstellt mit 3 ComboBoxen im
oberenen Teil wo man nach dem gewueschten
Vornamen/Namen/Telefonnummer suchen kann und im unteren Teil
soll dann, nachdem man in einer ComboBox einen entsprechenden
Eintrag gewaehlt hat der komplette Datensatz in 3 Textboxen
angezeigt werden, so dass man ihn modifizieren kann.
Hi Sebastian,
bastel mal die zweite UF, lösche mal alles an Daten bis auf die ersten 10-20 Zeilen und anonymisiere diese, dann lad mal die Datei hoch, www.rapidshare.de oder sonstwo.
Gruß
Reinhard
Hi Sebastian,
bastel mal die zweite UF, lösche mal alles an Daten bis auf
die ersten 10-20 Zeilen und anonymisiere diese, dann lad mal
die Datei hoch, www.rapidshare.de oder sonstwo.
Gruß
Reinhard
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