Listbox
- Listbox von Wolfgang vom 27.10.2020 10:31:06

Betrifft: Listbox
von: Wolfgang
Geschrieben am: 27.10.2020 10:31:06
Hallo Forum,
ich habe aus dem Internet eine Adressdatei mit Listbox für 5 Spalten heruntergeladen und diese für 11 Spalten
geändert. Leider funktioniert die Sub NachnameSuchen nicht. Der Debugger unterlegt die Zeile: "Me.Listbox1.Clear mit gelb. Auch bei der Sub Listbox1_Click wird die Zeile IngZeile = Me.Listbox1 ....... gelb unterlegt.
Da ich nicht weis wie man die beiden Subs umstellt wäre ich für eine Hilfe sehr dankbar.
Gruß Wolfgang
Private Sub NachnameSuchen_Click() 'Button "Nachnamen suchen"
Dim lngZeile As Long
Dim lngZeileMax As Long
Dim i As Integer
Me.ListBox1.Clear
With Tabelle1
lngZeileMax = .Cells(.Rows.Count, 1).End(xlUp).Row
For lngZeile = 3 To lngZeileMax
If InStr(UCase(.Cells(lngZeile, 2).Value), _
UCase(Me.TextBox2.Value)) > 0 Then
Me.ListBox1.AddItem .Cells(lngZeile, 1).Value
Me.ListBox1.Column(1, i) = .Cells(lngZeile, 2).Value
Me.ListBox1.Column(2, i) = .Cells(lngZeile, 3).Value
Me.ListBox1.Column(3, i) = .Cells(lngZeile, 4).Value
Me.ListBox1.Column(4, i) = .Cells(lngZeile, 5).Value
Me.ListBox1.Column(5, i) = lngZeile
i = i + 1
End If
Next lngZeile
End With
End Sub
Private Sub ListBox1_Click() 'Mit Klick auf Datensatz in Listbox wird in _
Textboxen geschrieben
Dim lngZeile As Long
Dim i As Integer
lngZeile = Me.ListBox1.Column(11, Me.ListBox1.ListIndex)
For i = 1 To 11
Me.Controls("TextBox" & i).Value = Tabelle1.Cells(lngZeile, i).Value
Next i
End Sub

Betrifft: AW: Listbox
von: Nepumuk
Geschrieben am: 27.10.2020 10:39:44
Hallo Wolfgang,
füllst du die ListBox primär per RowSource-Eigenschaft?
Gruß
Nepumuk

Betrifft: AW: Listbox
von: Wolfgang
Geschrieben am: 27.10.2020 10:46:43
Private Sub UserForm_Initialize()
Dim ZeileMax As Long
Dim Vardat As Variant
ZeileMax = Tabelle1.Cells(Tabelle1.Rows.Count, 1).End(xlUp).Row
Vardat = Tabelle1.Range("A2:L" & ZeileMax).Value
With Me.ListBox1
.ColumnHeads = True
.ColumnWidths = "50;110;110;110;110;50;170;110;110;140;110"
.ColumnCount = Tabelle1.Range("A2:L2").Columns.Count
.RowSource = Tabelle1.Range("A3:L" & ZeileMax).Address
End With
End Sub

Betrifft: AW: Listbox
von: Nepumuk
Geschrieben am: 27.10.2020 10:54:01
Hallo Wolfgang,
teste mal:
Private Sub NachnameSuchen_Click()
'Button "Nachnamen suchen"
Dim lngZeile As Long
Dim i As Long
Dim strSearch As String
With ListBox1
.RowSource = vbNullString
.Clear
End With
strSearch = UCase$(TextBox2.Value)
With Tabelle1
For lngZeile = 3 To .Cells(.Rows.Count, 1).End(xlUp).Row
If InStr(UCase$(.Cells(lngZeile, 2).Value), strSearch) > 0 Then
ListBox1.AddItem .Cells(lngZeile, 1).Value
ListBox1.Column(1, i) = .Cells(lngZeile, 2).Value
ListBox1.Column(2, i) = .Cells(lngZeile, 3).Value
ListBox1.Column(3, i) = .Cells(lngZeile, 4).Value
ListBox1.Column(4, i) = .Cells(lngZeile, 5).Value
ListBox1.Column(5, i) = lngZeile
i = i + 1
End If
Next lngZeile
End With
End Sub
Gruß
Nepumuk

Betrifft: AW: Listbox
von: Wolfgang
Geschrieben am: 27.10.2020 11:06:00
Hallo Nepumuk,
danke, funktioniert sehr gut.
Jetzt fehlt nur noch die Sub Listbox1_Click. Erst wenn diese funktioniert kann ich die
Sub DatensatzLöschen und die Sub DatensatzÄndern prüfen.
Gruß Wolfgang

Betrifft: AW: Listbox
von: Nepumuk
Geschrieben am: 27.10.2020 11:22:23
Hallo Wolfgang,
so?
Private Sub ListBox1_Click() 'Mit Klick auf Datensatz in Listbox wird in Textboxen geschrieben
Dim lngZeile As Long
Dim i As Long
With ListBox1
If .RowSource = vbNullString Then
lngZeile = .Column(5, .ListIndex)
Else
lngZeile = .ListIndex
End If
End With
For i = 1 To 11
Controls("TextBox" & i).Text = Tabelle1.Cells(lngZeile, i).Text
Next i
End Sub
Gruß
Nepumuk

Betrifft: AW: Listbox
von: Nepumuk
Geschrieben am: 27.10.2020 11:23:54
Stop, da ist noch ein Fehler drin.
lngZeile = .ListIndex
+ 1
Gruß
Nepumuk

Betrifft: AW: Listbox
von: Wolfgang
Geschrieben am: 27.10.2020 11:52:11
Hallo Nepumuk,
auch dies funktioniert bis auf: Klick auf Satz 1007 zeigt Satz 1005 an, 1013 zeigt 1011 an. Es werden immer zwei Sätze davor angezeigt.
Gruß Wolfgang

Betrifft: AW: Listbox
von: Nepumuk
Geschrieben am: 27.10.2020 11:53:53
Hallo Wolfgang,
na dann ziehe von der Zeile 2 ab.
Gruß
Nepumuk

Betrifft: AW: Listbox
von: Wolfgang
Geschrieben am: 27.10.2020 12:07:00
Hallo Nepumuk,
viele Codes versteht ich nicht, sodass ich auch hier nicht weis in welcher Zeile an welcher Stelle ich 2 abziehen muss. Meine Versuche sind alle gescheitert.
Gruß Wolfgang

Betrifft: AW: Listbox
von: Nepumuk
Geschrieben am: 27.10.2020 12:43:46
Hallo Wolfgang,
kannst du eine Mustermappe mit ein paar Beispieldaten hochladen damit ich es testen kann?
Gruß
Nepumuk

Betrifft: AW: Listbox
von: Wolfgang
Geschrieben am: 27.10.2020 13:16:53
https://www.herber.de/bbs/user/141123.xlsm
Hallo Nepumuk, anbei meine Musterdatei. Wenn die App Listbox1_Click funktioniert sind noch die Sub DatensatzLöschen und die Sub DatensatzÄndern zu prüfen.
Gruß Wolfgang

Betrifft: AW: Listbox
von: Nepumuk
Geschrieben am: 27.10.2020 14:05:10
Hallo Wolfgang,
teste mal:
https://www.herber.de/bbs/user/141124.xlsm
Gruß
Nepumuk

Betrifft: AW: Listbox
von: Wolfgang
Geschrieben am: 27.10.2020 15:13:23
Hallo Nepumuk,
vielen Dank für Deine perfekte Hilfe. Alles klappt nun hervorragend. Dies hätte ich nicht hinbekommen.
Ich habe mir schon viele Codes aus dem Internet geholt. Aber alles über Listboxen endet bei 10 Spalten.
Gruß Wolfgang

Betrifft: Datensatz ändern geht bei dir? Datei 141124.xlsm
von: Helmut
Geschrieben am: 27.10.2020 15:37:05
Hallo Wolfgang,
bei mir geht diese Funktion nicht.
Hast Du etwas in dieser Datei geändert ?
Wenn Ja, bitte bekanntgeben :-)
Gruß Helmut

Betrifft: AW: Datensatz ändern geht bei dir? Datei 141124.xlsm
von: Wolfgang
Geschrieben am: 27.10.2020 15:53:38
Hallo Helmut,
ich habe die Sub DatensatzÄndern gerade nochmal getestet und festgestellt, dass man zwar den Nachnamen ändern kann, aber die sonstigen Textfelder nicht. Ich hatte nur den Nachnamen getestet und die anderen Felder nicht. Dass man nur den Nachnahmen ändern kann macht jedoch keinen Sinn. Man will ja beim Nachnamen evtl. nur die Anschrift oder Telefonnummer ändern.
Vielleicht liest ja Nepumuk diese Zeilen und meldet sich bei uns wieder
Gruss Wolfgang

Betrifft: AW: Datensatz ändern geht bei dir? Datei 141124.xlsm
von: Nepumuk
Geschrieben am: 27.10.2020 16:16:43
Hallo Ihr zwei,
ich hatte es auch nur mit dem Namen getestet. Als Trostpflaster habe ich dir das scrollen in der Listbox eingebaut. Zum horizontalen scrollen die STRG-Taste gedrückt halten.
https://www.herber.de/bbs/user/141131.xlsm
Gruß
Nepumuk

Betrifft: AW: Datensatz ändern geht bei dir? Datei 141124.xlsm
von: Nepumuk
Geschrieben am: 27.10.2020 16:23:41
Hallo Ihr zwei,
und damit es gleich nach dem öffnen des Userforms funktioniert, noch diese Prozedur ändern:
Private Sub UserForm_Initialize()
Dim ZeileMax As Long
ZeileMax = Tabelle1.Cells(Tabelle1.Rows.Count, 1).End(xlUp).Row
With ListBox1
.ColumnHeads = True
.ColumnWidths = "50;110;110;110;110;50;170;110;110;140;110"
.ColumnCount = Tabelle1.Range("A2:L2").Columns.Count
.RowSource = Tabelle1.Range("A3:L" & ZeileMax).Address
.SetFocus
End With
End Sub
Gruß
Nepumuk

Betrifft: AW:Danke Nepumuk, jetzt alles OK :-) kwT
von: Helmut
Geschrieben am: 27.10.2020 16:39:42

Betrifft: AW: AW:Danke Nepumuk, jetzt alles OK :-) kwT
von: Wolfgang
Geschrieben am: 27.10.2020 16:43:07
Nochmals danke für alles.
Gruß Wolfgang

Betrifft: AW: Listbox
von: ralf_b
Geschrieben am: 27.10.2020 10:41:12
und was passiert wenn du das Me. wegläßt?

Betrifft: AW: Listbox
von: Wolfgang
Geschrieben am: 27.10.2020 10:54:58
Hallo,
auf die Frage von ralf_b: Es geschieht nichts. Gleicher Fehler
Beiträge aus dem Excel-Forum zum Thema "Listbox"