Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1400to1404
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

Sortierungen/ Dynamische Listbox

Sortierungen/ Dynamische Listbox
17.01.2015 11:14:48
Michael Höller

Wunderschönen guten Morgen zusammen!
Erstmal Danke für die vielen Beiträge von denen man viel lernen kann! Allerdings habe ich in meinem Excel- und VBAprojekt noch einige Dinge bei denen ich einfach nicht weiterkomme. Über jegliche Art von Tips und Hilfe wäre ich super dankbar!
Kurz zur Erklärung: Ich habe eine Tabelle (DB) in der Projekte mit folgenden Werten abgespeichert werden.
(ID / Kategorie / Bezeichnung / Priorität / Fälligkeit / Fertigstellung)
Die Überschriften sollen zwingend in der Tabelle in Reihe 1 stehen. Diese Tabelle wird dann per Listbox in einer UserForm angezegt, die allerlei Dinge macht.
Die erste Frage: Ich habe ein Makro aufgezeichnet, welches theoretisch in der Tabelle funktioniert. In der UserForm allerdings wird die erste Zeile nicht mitsortiert :( Die Idee hinter der sortierung ist die Tabelle zu sortieren und die Listbox dann neu mit den sortierten Werten befüllen zu lassen
Der Code zum sortieren:
'Priorität sort

Private Sub OptionButton1_Click()
'Anzahl befüllter Reihen finden
Dim r As Long
r = Sheets("DB").range("D65536").End(xlUp).Row
'Aufgezeichnetes Makro
Sheets("DB").Activate
range("D1:D" & r).Select
ActiveWorkbook.Worksheets("DB").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("DB").Sort.SortFields.Add Key:=range("D1"), SortOn _
:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("DB").Sort
.SetRange range("A2:G9")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
'repopulate ListBox
reload
End Sub
'Fügt der Listbox die einzelnen Projekte hinzu
Public Sub reload()
Dim reloadVar As Long
reloadVar = Sheets("DB").Cells(Rows.Count, 2).End(xlUp).Row
If reloadVar > 1 Then
With UserForm1.ListBox1
.List = Worksheets("DB").range("a2:f" & reloadVar).Value
.ColumnWidths = "1.5cm;6cm;9cm;2.5cm;4cm;1cm"
End With
Else
MsgBox "Keine Daten vorhanden! Bitte einen neuen Eintrag anlege!"
UserForm2.Show
End If
End Sub
Zweite Frage: Der Eintrag Fertigstellung soll wenn möglich in % angegeben werden. Wenn ich die Zelle entsprechend formatiere wird in der Listbox ein Wert zwischen 0 und 1 angezeigt und bei Standart bekomme ich auch kein % - Zeichen hin.
Dritte Frage: Ich habe eine Combobox, die mit den einzelnen Kategorien gefüllt wird. Wenn man eine Kategorie auswählt sollen nur die Projekte der entsprechenden Kategorie in der Listbox angezeigt werden. Ist es möglich das über ein If + contains = show (nur als beispiel) zu realisieren?
Private Sub ComboBox1_Change()
'find value
Dim cBox As String
cBox = ComboBox1.Value
If cBox = "" Then
'Show everything
Else
'get Kategorien
'Show only Projects with Kategorie XXX
End If
End Sub
Gerne lade ich die ganze Arbeitsmappe hoch wenn ich gefunden habe wo das möglich ist ;D
Vielen Dank schonmal für alle Antworten
Michi

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sortierungen/ Dynamische Listbox
17.01.2015 14:47:45
Christian
Hallo Michael,
nun, bei "Excel gut - VBA gut" solltest du über solche Themen nicht mehr nachdenken müssen.
zu 1: bei deinem Code setzt du den zu sortierenden Bereich auf ("A2:G9") und mit "Header = xlGuess" überlässt du es Excel, ob in dem Bereich eine Überschrift enthalten ist.
Setze den Bereich auf "A1:G9" und setze "Header = xlYes"
Zu 2: wenn du der Listbox Values übergibst, werden Prozentangaben mit deren Wert übertragen.
Also entweder schreibst du die Prozente in der Tab als Text oder du wandelst die Werte vor der Übergabe an die Listbox in Text um.
Zu 3: zB. filtere die Daten mit Spezialfilter und übergebe diesen Bereich an die ListBox. Es gibt noch X andere Möglichkeiten
Gruß
Christian

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige