Liste in Userform anzeigen
#1
Hallo!

Ich habe in Spalte "Q" Wörter stehen, die ich gerne in einer UserForm auswählen will. Super wäre es, wenn die Wörter auch noch alphabetisch von A - Z angezeigt werden, denn in Spalte "Q" sind sie immer nicht sortiert.
Vorerst lautet einmal mein Code:

Code:
Private Sub ListBox1_Click()

End Sub
Ich hoffe, dass mir jemand helfen kann.
LG
Excel Version 2016
Top
#2
hallo!

Das ist recht wenig! Bitte fertige eine Beispieldatei an um die Struktur der Tabelle und den Aufbau erkennen zu können mit deiner Userform!
Top
#3
Anbei ein Beispiel. Geplant ist dann in einer weiteren Ausbauphase, dass wenn ich in der Drop Down Liste etwas ausgewählt habe, dass sich das UserForm schließt und sich eine MessageBox öffnet und folgendes angezeigt wird:

- Das vorhin ausgewählte Element aus der Liste, z.B. Meinungsstudie
- daneben soll die Zahl 3 (aus der Zelle P) stehen


Angehängte Dateien
.xls   KopiePuU.xls (Größe: 292,5 KB / Downloads: 5)
Excel Version 2016
Top
#4
Hi,

anbei was mit System.Collections.Arraylist

.xlsb   sortierte_Listbox.xlsb (Größe: 19,67 KB / Downloads: 4)
lg Chris
Feedback nicht vergessen.
[Bild: v.gif]
3a2920576572206973742064656e20646120736f206e65756769657269672e
Top
#5
Bevor hier etwas geht muss das Ganze in eine vernünftige Form! Du brauchst eine Bessere Struktur! Der rechte Datenbereich lässt sich so nicht fassen und auswerten!
Top
#6
Wäre es ok, wenn die Spalte sortiert würde? Falls ja, ginge das so:
Code:
Private Sub UserForm_Activate()
Dim letzte As Long
letzte = Cells(Rows.Count, "Q").End(xlUp).Row

   ActiveWorkbook.Worksheets("Top30").Sort.SortFields.Clear
   ActiveWorkbook.Worksheets("Top30").Sort.SortFields.Add Key:=Range("Q6:Q" & letzte) _
       , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
   With ActiveWorkbook.Worksheets("Top30").Sort
       .SetRange Range("P6:T" & letzte)
       .Header = xlGuess
       .MatchCase = False
       .Orientation = xlTopToBottom
       .SortMethod = xlPinYin
       .Apply
   End With
ListBox1.List = Sheets("Top30").Range("Q6:Q" & letzte).Value

End Sub


Aber um Himmels willen, schmeiß doch die ganzen Module raus. Wozu brauchst du 60 Module???
Schöne Grüße
Berni
[-] Folgende(r) 1 Nutzer sagt Danke an MisterBurns für diesen Beitrag:
  • Frogger1986
Top
#7
Hallo MisterBurns!

Danke sehr für die schnelle Antwort und den Code, schaut schon sehr gut aus. Meine Frage wäre nun, geht das nun auch als Drop Down Feld zum Auswählen, oder geht das nicht?
Des weiteren bräuchte ich dann, nachdem ich was ausgewählt habe, dass sich eine MessagBox öffnet und in dieser soll dann folgendes angezeigt werden:

- was ich gerade ausgewählt habe
- der Wert links daneben von Spalte P
Excel Version 2016
Top
#8
Gehen tut vieles. Aber wieso schreibst du dann vorher von einer Listbox und nicht sofort, dass du ein Dropdown willst? Und wieso rückst du mit der Info für die Messagebox auch erst jetzt raus? Ich habe nämlich keine Lust auf Salamitaktik. Daher sage jetzt, was du dir konkret noch so alles vorstellst.
Schöne Grüße
Berni
Top
#9
Tut mir leid, Listbox war ein Fehler von mir. Ich dachte, dass es sich hier um eine Drop Down Liste handelt, aber anscheinend tut es das nicht. Das mit der Messagebox habe ich als Ergänzung um 10:04 geschrieben, dass ich dann auch noch haben will.
Sonst brauche ich nichts. Wäre super, wenn du mir noch einmal helfen könntest.

LG

Thomas
Excel Version 2016
Top
#10
Alles klar. Dann erstelle auf deiner Userform ein Dropdownfeld. Dieses wird standardmäßig "ComboBox1" heißen, von diesem Namen gehe ich jetzt aus.
Ersetze die Zeile
Code:
ListBox1.List = Sheets("Top30").Range("Q6:Q" & letzte).Value
durch
Code:
ComboBox1.List = Sheets("Top30").Range("Q6:Q" & letzte).Value

Zusätzlich noch diese Prozedur einfügen (direkt unter der vorherigen Prozedur)
Code:
Private Sub ComboBox1_Change()
Dim Suche As Range

Set Suche = Columns("Q").Find(what:=ComboBox1.Value, lookat:=xlWhole)
MsgBox "Ausgewählter Wert ist " & ComboBox1.Value & " " & Cells(Suche.Row, "P")
End Sub
Schöne Grüße
Berni
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste