22.06.2020, 16:46
(Dieser Beitrag wurde zuletzt bearbeitet: 22.06.2020, 16:46 von diving_excel.)
Hallo!
Ich habe ein Userform mit einer Listbox, einem Textfeld und einem CommandButton.
Zuerst klicke ich auf den CommandButton "Userform öffnen" und klicke anschließend auf das Fernglassymbol um die Listbox mit Einträgen aus Tabelle1 zu füllen. Dann wähle ich einen Eintrag in der Listbox aus. Anschließend gebe ich einen Text in die Textbox ein und diesen Text übertrage ich mit einem klick auf den CommandButton "Update" in Tabelle1. In Spalte 0 der Listbox steht die Nummer des jeweiligen Eintrags aus Tabelle1 / Spalte A. Diese Nummer Verwende ich um den Eintrag der Textbox an der richtigen Stelle innerhalb der Tabelle zu platzieren. Abschließend wird dieser neue Wert wieder zurück in die Listbox gegeben. Soweit funktioniert das auch sehr gut.
Ich verwende hier die Option Single Selection der Listbox. Wie müsste ich nun meinen Code ändern, damit ich bei der Verwendung von Multi Select alle Einträge die ich ausgewählt habe mit dem Eintrag der Textbox neu besetzte?
Zum Beispiel: Ich wähle die ersten Beiden Einträge der Listbox aus, gebe dann "Maximilian" in die Textbox ein und klicke dann auf den CommandButton "Update". Anschließend soll der Eintrag "Maximilian" auch für die beiden Einträge aus der Listbox in Tabelle 1 hinterlegt werden. Also Anstatt dass ich jeden Datensatz einzeln ändere, möchte ich die jeweilig ausgewählten Datensätze der Listbox gleichzeitig ändern.
Edit: Wenn ich von single Selection zu Multi Selection wechsele ändert er immer nur den untersten ausgewählten Datensatz.
Vielen Dank für eure Hilfe!
Gruß
Ich habe ein Userform mit einer Listbox, einem Textfeld und einem CommandButton.
Zuerst klicke ich auf den CommandButton "Userform öffnen" und klicke anschließend auf das Fernglassymbol um die Listbox mit Einträgen aus Tabelle1 zu füllen. Dann wähle ich einen Eintrag in der Listbox aus. Anschließend gebe ich einen Text in die Textbox ein und diesen Text übertrage ich mit einem klick auf den CommandButton "Update" in Tabelle1. In Spalte 0 der Listbox steht die Nummer des jeweiligen Eintrags aus Tabelle1 / Spalte A. Diese Nummer Verwende ich um den Eintrag der Textbox an der richtigen Stelle innerhalb der Tabelle zu platzieren. Abschließend wird dieser neue Wert wieder zurück in die Listbox gegeben. Soweit funktioniert das auch sehr gut.
Ich verwende hier die Option Single Selection der Listbox. Wie müsste ich nun meinen Code ändern, damit ich bei der Verwendung von Multi Select alle Einträge die ich ausgewählt habe mit dem Eintrag der Textbox neu besetzte?
Zum Beispiel: Ich wähle die ersten Beiden Einträge der Listbox aus, gebe dann "Maximilian" in die Textbox ein und klicke dann auf den CommandButton "Update". Anschließend soll der Eintrag "Maximilian" auch für die beiden Einträge aus der Listbox in Tabelle 1 hinterlegt werden. Also Anstatt dass ich jeden Datensatz einzeln ändere, möchte ich die jeweilig ausgewählten Datensätze der Listbox gleichzeitig ändern.
Edit: Wenn ich von single Selection zu Multi Selection wechsele ändert er immer nur den untersten ausgewählten Datensatz.
Code:
Private Sub cmdÄndern_Click()
Dim lngZeile As Long
Dim i As Integer
Dim lngZeileMax As Long
'Zuerst prüfen, ob überhaupt ein Datensatz im Listenfeld markiert ist
If Me.ListBox1.ListIndex >= 0 Then
lngZeile = Me.ListBox1.Column(0, Me.ListBox1.ListIndex)
Tabelle1.Cells(lngZeile + 1, 5).Value = Me.Controls("TextBox1").Value
'Zurückschreiben in die ListBox
Me.Controls("TextBox1").Value = Tabelle1.Cells(lngZeile + 1, 5).Value
Else
MsgBox "Keine Daten ausgewählt!"
End If
Call cmdSuchen2_Click
End Sub
Vielen Dank für eure Hilfe!
Gruß