Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1336to1340
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 füllen mit Bedingungen

Listbox füllen mit Bedingungen
07.11.2013 15:43:54
Albert
Hallo zusammen,
mit dem Anwählen der Userform lasse ich eine Listbox füllen. Problem an der Sache ist, dass mit der angegebenen Range alle Einträge in die Listbox gelangen.
Ich möchte aber nur besondere, die in der Spalte 5 ein "x" haben.
Private Sub UserForm_Initialize()
ListBox1.ColumnCount = 5
ListBox1.ColumnWidths = "2cm;2cm;4cm;4cm;4cm"
ListBox1.ColumnHeads = True
ListBox1.RowSource = "A5:E" & Range("E1000").End(xlUp).Row
End Sub
Wäre euch um Hilfe echt dankbar.
Gruß
A.

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listbox füllen mit Bedingungen
07.11.2013 16:28:18
Rudi
Hallo,
Private Sub UserForm_Initialize()
Dim arrList(), rngC As Range, j As Integer, n As Integer
ReDim arrList(1 To WorksheetFunction.CountIf(Columns(5), "x"), 1 To 5)
For Each rngC In Range(Cells(5, 1), Cells(Rows.Count, 1).End(xlUp))
If rngC.Offset(, 4) = "x" Then
n = n + 1
For j = 0 To 4
arrList(n, j + 1) = rngC.Offset(, j)
Next
End If
Next
With ListBox1
.ColumnCount = 5
.ColumnWidths = "2cm;2cm;4cm;4cm;4cm"
.List = arrList
End With
End Sub

Gruß
Rudi

Danke Rudi, funktioniert! owT
07.11.2013 16:38:01
Albert
s

AW: Listbox füllen mit Bedingungen
07.11.2013 16:39:03
Peter
Hallo Albert,
dann musst Du auf RowSource und ColumnHead verzichten und eine Zeile nach der anderen einstellen:
Option Explicit
Private Sub UserForm_Initialize()
Dim lZeile  As Long
Dim iLiBo   As Integer
With ListBox1
.Clear
.ColumnCount = 5
.ColumnWidths = "2cm;2cm;4cm;4cm;4cm"
With ThisWorkbook.Worksheets("Tabelle2") ' den Tabellenblattnamen ggf. anpassen!
For lZeile = 5 To .Cells(.Rows.Count, 5).End(xlUp).Row
If LCase(.Range("E" & lZeile).Value) = "x" Then
ListBox1.AddItem " "
ListBox1.List(iLiBo, 0) = .Range("A" & lZeile).Value
ListBox1.List(iLiBo, 1) = .Range("B" & lZeile).Value
ListBox1.List(iLiBo, 2) = .Range("C" & lZeile).Value
ListBox1.List(iLiBo, 3) = .Range("D" & lZeile).Value
ListBox1.List(iLiBo, 4) = .Range("E" & lZeile).Value
iLiBo = iLiBo + 1
End If
Next lZeile
End With
End With
End Sub
Du kannst natürlich, wenn Du in Deiner Liste Überschriften hast, diese als erste in die ListBox einstellen - dann hast Du sie dort als Überschrift.
Gruß Peter

Anzeige
@Peter... funktioniert prima! Dankeschön owT
07.11.2013 20:43:49
Albert
s

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige