Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Einträge einer Tabelle über Userform ändern

Forumthread: Einträge einer Tabelle über Userform ändern

Einträge einer Tabelle über Userform ändern
06.10.2025 20:25:16
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
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Einträge einer Tabelle über Userform ändern
06.10.2025 20:48:29
emkaes
Hallo,

da du die Listbox über .rowsource füllst, triggerst du mit der Veränderung des Zelleintrags gleichzeitig dein Listbox_change event. Nutze entweder eine andere Füllmethode oder schalte zeitweilig die Events aus


VG
AW: Einträge einer Tabelle über Userform ändern
06.10.2025 21:11:27
Uduuh
Hallo,
oder schalte zeitweilig die Events aus
funktioniert in Userforms nicht.

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.List= myRange.Value
End With

End Sub


Gruß aus'm Pott
Udo
Anzeige
AW: Einträge einer Tabelle über Userform ändern
06.10.2025 22:43:33
Bobesch58
Hallo und vielen Dank für die Erklärung und den Lösungsansatz. Hat hervorragend funktioniert.
Viele Grüße
Bobesch58
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18