Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1376to1380
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Listbox - Bei gleichen DS falsche Anzeige

Listbox - Bei gleichen DS falsche Anzeige
13.08.2014 13:25:39
Jockel
Hallo,
ich habe eine Excel Tabelle mit mehreren Spalten. In der Spalte A ist zB der Nachname, in der Spalte B ist der Vorname. (Es kommen dann noch weitere ..)
Nun habe ich eine Userform, auf der sind 2 Listboxn drauf. In der ersten Listbox steht der Nachnahme aus Spalte A drin, in der Listbox2 der Vorname aus Spalte B.
Wenn ich nun in der Listbox 1 einen Nachname anklicke, wird mir auch der Listbox2 der entsprechende Vorname angezeigt. Wenn ich mit der Pfeiltaste die Listbox1 runter scrolle, sehe ich in der Listbox 2 auch gleich immer die passenden Vornamen.
Soweit so gut.
Private Sub ListBox1_Click()
With ListBox1
If .ListIndex = -1 Then
ListBox2.Value = ""
ListBox3.Value = ""
ListBox4.Value = ""
TextBox15.Value = ""
Else
ListBox2.Value = .List(.ListIndex, 1)
ListBox3.Value = .List(.ListIndex, 2)
ListBox4.Value = .List(.ListIndex, 3)
TextBox15.Value = .List(.ListIndex, 4)
End If
End With
End Sub

Nun folgendes Problem:
angenommen ich habe folgende Konstellation in meiner Tabelle:
A____________B________
Schmid_______Peter____
Clemens______Bernd____
Richter______Ralf_____
Müller_______Thomas___
Müller_______Joachim__
Ziegler______Peter____
Wenn ich nun in der Listbox1 auf den ersten DS "SCHMID" klicke, bekomme ich in der Listbox2 "Peter" angezeigt. Scrolle ich ein DS weiter nach unten, sehe ich in Listbox1 "Clemens" und in Listbox2 "Bernd".
Das geht so lange, bis ich mal auf einen DS stosse, der zwei mal vorkommt (gleicher Inhalt)
Wenn ich zB auf "Müller" klicke, bekomme ich in der Listbox2 "Thomas" angezeigt.
Nun kommt das Problem - wenn ich jetzt eine Zeile weiter nach unten scrolle zum nächsten "Müller" steht nicht wie erwartet in der Listbox2 "Joachim" sondern wieder "Thomas"
Es ist im Prinzip immer das gleiche, habe ich zB 10 X "Müller in der Listbox1, bekomme ich, egal welchen DS ich anklicke, in der Listbox2 immer des ersten gefundenen Name angezeigt, als in dem Fall wird immer "Thomas" angezeigt, egal welchen "Müller" ich wähle.
Was mache ich da falsche ?
Kann mir jemand helfen ?
Danke
Jockel

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listbox - Bei gleichen DS falsche Anzeige
13.08.2014 13:35:45
Daniel
Hi
wenn du Listboxen "parallel" halten willst, solltest du
Listbox2.ListIndex = Listbox1.ListIndex

verwenden.
die .Value-Eigenschaft der Listbox solltest du als "ReadOnly" betrachten.
die "Write"-Eigenschaft einer Listbox ist der ListIndex. Somit ist dann auch ausgeschlossen, dass du versuchst der Listbox einen .Value-Wert zu geben, der gar nicht in der Liste vorhanden ist und das ist in einer Listbox nicht zulässig.
setzt du die .Value-Eigenschaft aktiv so durchsucht VBA die Listbox und setzt den ListIndex auf die erste Fundstelle.
Gruß Daniel

Anzeige
AW: Listbox - Bei gleichen DS falsche Anzeige
13.08.2014 14:00:23
Jockel
Hallo Daniel,
bist du sicher, das dem so ist mit dem "Parallel" laufen.
Ich habe momentan immer noch das selbe Problem,
es hat sich nichts geändert mit Deinem Code.
Gruß
Jockel

AW: Listbox - Bei gleichen DS falsche Anzeige
13.08.2014 14:03:22
Daniel
du verwechselt da was.
es gibt hier nicht "meinen" Code.
es gibt immer nur "deinen" Code und den kenne ich nicht.
Gruß Daniel

AW: Listbox - Bei gleichen DS falsche Anzeige
13.08.2014 13:45:28
Rudi
Hallo,
In der ersten Listbox steht der Nachnahme aus Spalte A drin, in der Listbox2 der Vorname aus Spalte B.
warum nicht einfach eine 2-spaltige LBx?
Gruß
Rudi

hmm, weiß auch nicht :-| owT
13.08.2014 14:01:25
Jockel

AW: hmm, weiß auch nicht :-| owT
13.08.2014 15:01:58
Ewald
Hallo,
eine 2spaltige Listbox kannst du so füllen (Code in die Userform)
Private Sub UserForm_Initialize()
Dim wks As Worksheet
Dim n
Dim z
Set wks = Worksheets("Tabelle2")
With Me.ListBox1
.ColumnCount = 2
.ColumnWidths = "3cm;3cm"
.Clear
For n = 1 To wks.Cells(Rows.Count, 1).End(xlUp).Row
If wks.Cells(n, 1)  "" Then
.AddItem
.List(z, 0) = wks.Cells(n, 1)
.List(z, 1) = wks.Cells(n, 2)
z = z + 1
End If
Next n
End With
Set wks = Nothing
End Sub
Tabelle mußt du anpassen und eventuell die Anfangszeile
Gruß Ewald

Anzeige
Danke, habe mich doch fürs 2spaltige entschieden
14.08.2014 07:14:52
Jockel
:-)

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige