Daten ändern in Excel mit Userform

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.

Hallo Sebastian.

Funktioniert denn das Befüllen der ComboBoxen mit den Datensätzen schon, oder geht es genau darum?

Viele Grüße
Carsten

Also das Befüllen der ComboBoxen würd ich noch hinkriegen. Es geht hauptsächlich um das Anzeigen der entsprechenden Daten in den Textfeldern.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

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

Das Sample-File gibt es unter
http://www.vivacolonia.net/StudentTest.xls

Danke im Voraus für die Hilfe!

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

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

Das Sample-File gibt es unter
http://www.vivacolonia.net/StudentTest.xls

Hi Sebastian,
wie wärs denn im Blatt Database mit Daten—Maske.

Und, ist deine Anfrage durch die andere Antwort gelöst?

Gruß
Reinhard

Problem gelöst - Vielen Dank!
Hallo Carsten, hallo Reinhard,

vielen vielen Dank für die schnelle Hilfe. Das Problem wurde zu meiner vollsten Zufriedenheit gelöst!

Gruß,
Sebastian