Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema ListBox
BildScreenshot zu ListBox ListBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

Listbox - Bei gleichen DS falsche Anzeige

Betrifft: Listbox - Bei gleichen DS falsche Anzeige von: Jockel
Geschrieben am: 13.08.2014 13:25:39

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

  

Betrifft: AW: Listbox - Bei gleichen DS falsche Anzeige von: Daniel
Geschrieben am: 13.08.2014 13:35:45

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


  

Betrifft: AW: Listbox - Bei gleichen DS falsche Anzeige von: Jockel
Geschrieben am: 13.08.2014 14:00:23

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


  

Betrifft: AW: Listbox - Bei gleichen DS falsche Anzeige von: Daniel
Geschrieben am: 13.08.2014 14:03:22

du verwechselt da was.
es gibt hier nicht "meinen" Code.
es gibt immer nur "deinen" Code und den kenne ich nicht.
Gruß Daniel


  

Betrifft: AW: Listbox - Bei gleichen DS falsche Anzeige von: Rudi Maintaire
Geschrieben am: 13.08.2014 13:45:28

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


  

Betrifft: hmm, weiß auch nicht :-| owT von: Jockel
Geschrieben am: 13.08.2014 14:01:25




  

Betrifft: AW: hmm, weiß auch nicht :-| owT von: Ewald
Geschrieben am: 13.08.2014 15:01:58

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


  

Betrifft: Danke, habe mich doch fürs 2spaltige entschieden von: Jockel
Geschrieben am: 14.08.2014 07:14:52

:-)


 

Beiträge aus den Excel-Beispielen zum Thema "Listbox - Bei gleichen DS falsche Anzeige"