14.04.2020, 12:10
Hallo,
ich brauche mal wieder Hilfe, weil ich komme mit meinen minimalen Kenntnissen gerade nicht weiter und ich habe schon einiges probiert.
Ich erkläre kurz mal was ich meine und ich habe auch die Datei auch mitgesendet.
Ich habe eine Userform mit einer mehrspaltigen Listbox und zwar mit 4 Spalten aus einen Bereich einer Tabelle. Die Listbox möchte ich verwenden um die Anrede, Name und Vorname einzugeben.
Die Userform mit der Listbox öffnet sich auf der Startseite über die Schaltfläche "Eingabe". Die Listbox hat sich beim öffnen schon automatisch die vorhanden Daten aus der Tabelle geladen.
Durch ein Doppelklick in der Listbox auf die jeweilige Person, werden die Daten darunter in 4 Textboxen zur Bearbeitung angezeigt. Nach der Änderung oder Eingabe einer neuen Person, sollen die Änderungen in die Listbox übernommen werden und automatisch natürlich auch in die Tabelle übernommen werden. Nur. Die Spalte "Nr." soll nicht verändert werden. Dafür habe ich einen Schaltfläche zum "Speichern".
Bis auf Speichern der Daten in die Listbox und dann in die Tabelle, klappt alles super und läuft.
Ich habe die Datei mitgesendet:
Prüfung_Check_ Vorlage_20200412_neu_übung.xlsm (Größe: 66,49 KB / Downloads: 12)
Hier aber auch meine Codes:
'*************************************************************
Dieser Befehl funktioniert nicht!
Private Sub CommandButton1_Click() 'Speichern in Listbox
With ListBox1
.AddItem TextBox1 'erste Spalte in Listbox
.List(ListCount - 1, 1) = TextBox2 'dritte Spalte in Listbox
.List(ListCount - 1, 2) = TextBox3 'dritte Spalte in Listbox
.List(ListCount - 1, 3) = TextBox4 'vierte Spalte in Listbox
End With
'TextBox1 Nr. bleibt unverändert, nicht löschen
TextBox2 = ""TextBox3 = ""
TextBox4 = ""
End Sub
'*************************************************************
'Von ListBox in die TextBoxen übertragen um Address Daten zu bearbeiten
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
TextBox1.Value = ListBox1.Column(0, ListBox1.ListIndex)
TextBox2.Value = ListBox1.Column(1, ListBox1.ListIndex)
TextBox3.Value = ListBox1.Column(2, ListBox1.ListIndex)
TextBox4.Value = ListBox1.Column(3, ListBox1.ListIndex)
End Sub
Private Sub UserForm_Initialize()
'*************************************************************
'Eingabefenster Listenfeld TN Namen und übertragen in Datenbank
With Me.ListBox1
.ColumnCount = 4
.ColumnWidths = "50;60;150;150"
.RowSource = "Datenbank!B2:E37"
.MultiSelect = fmMultiSelectSingle
.TextColumn = 1
.BoundColumn = 4
End With
End Sub
'**************************************************************
Ich komme nicht weiter, weil er es nicht übernehmen möchte beim Speichern.
Hoffe jemand hat eine Idee.
Schönen Tag
ich brauche mal wieder Hilfe, weil ich komme mit meinen minimalen Kenntnissen gerade nicht weiter und ich habe schon einiges probiert.
Ich erkläre kurz mal was ich meine und ich habe auch die Datei auch mitgesendet.
Ich habe eine Userform mit einer mehrspaltigen Listbox und zwar mit 4 Spalten aus einen Bereich einer Tabelle. Die Listbox möchte ich verwenden um die Anrede, Name und Vorname einzugeben.
Die Userform mit der Listbox öffnet sich auf der Startseite über die Schaltfläche "Eingabe". Die Listbox hat sich beim öffnen schon automatisch die vorhanden Daten aus der Tabelle geladen.
Durch ein Doppelklick in der Listbox auf die jeweilige Person, werden die Daten darunter in 4 Textboxen zur Bearbeitung angezeigt. Nach der Änderung oder Eingabe einer neuen Person, sollen die Änderungen in die Listbox übernommen werden und automatisch natürlich auch in die Tabelle übernommen werden. Nur. Die Spalte "Nr." soll nicht verändert werden. Dafür habe ich einen Schaltfläche zum "Speichern".
Bis auf Speichern der Daten in die Listbox und dann in die Tabelle, klappt alles super und läuft.
Ich habe die Datei mitgesendet:
Prüfung_Check_ Vorlage_20200412_neu_übung.xlsm (Größe: 66,49 KB / Downloads: 12)
Hier aber auch meine Codes:
'*************************************************************
Dieser Befehl funktioniert nicht!
Private Sub CommandButton1_Click() 'Speichern in Listbox
With ListBox1
.AddItem TextBox1 'erste Spalte in Listbox
.List(ListCount - 1, 1) = TextBox2 'dritte Spalte in Listbox
.List(ListCount - 1, 2) = TextBox3 'dritte Spalte in Listbox
.List(ListCount - 1, 3) = TextBox4 'vierte Spalte in Listbox
End With
'TextBox1 Nr. bleibt unverändert, nicht löschen
TextBox2 = ""TextBox3 = ""
TextBox4 = ""
End Sub
'*************************************************************
'Von ListBox in die TextBoxen übertragen um Address Daten zu bearbeiten
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
TextBox1.Value = ListBox1.Column(0, ListBox1.ListIndex)
TextBox2.Value = ListBox1.Column(1, ListBox1.ListIndex)
TextBox3.Value = ListBox1.Column(2, ListBox1.ListIndex)
TextBox4.Value = ListBox1.Column(3, ListBox1.ListIndex)
End Sub
Private Sub UserForm_Initialize()
'*************************************************************
'Eingabefenster Listenfeld TN Namen und übertragen in Datenbank
With Me.ListBox1
.ColumnCount = 4
.ColumnWidths = "50;60;150;150"
.RowSource = "Datenbank!B2:E37"
.MultiSelect = fmMultiSelectSingle
.TextColumn = 1
.BoundColumn = 4
End With
End Sub
'**************************************************************
Ich komme nicht weiter, weil er es nicht übernehmen möchte beim Speichern.
Hoffe jemand hat eine Idee.
Schönen Tag