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

Ergebnisse in einer Listbox in Spalten darstellen

Ergebnisse in einer Listbox in Spalten darstellen
21.02.2024 21:06:12
Nordic
Moin,
ich habe mir folgenden Code zusammengebastelt:


Private Sub UserForm_Initialize()
Dim ws As Worksheet
Dim currentDate As Date
Dim targetDate As Date
Dim i As Long
Dim j As Long
Dim k As Long
Dim rowIndex As Long
Dim counts(1 To 11) As Long
Dim labels(1 To 11) As String

Set ws = ThisWorkbook.Sheets("Projektplan")
currentDate = Date
targetDate = ws.Range("R7").Value + 7

With ListBox1
.ColumnCount = 12
.ColumnWidths = "200;40;40;40;40;40;40;40;40;40;40;40"
.Left = 10
.Top = 10
.Width = 1200
.Height = 100
.BorderStyle = 1
.SpecialEffect = 2
End With

For i = 7 To gLR
If ws.Cells(i, "R").Value + 7 > currentDate Then
rowIndex = ListBox1.ListCount
ListBox1.AddItem ws.Cells(i, "B").Value

For j = 1 To 11
counts(j) = Application.WorksheetFunction.CountIf(ws.Range("W" & i & ":NX" & i), j)
Next j

counts(10) = counts(10) + Application.WorksheetFunction.CountIf(ws.Range("W" & i & ":NX" & i), "P")

labels(1) = counts(1)
labels(2) = counts(2)
labels(3) = counts(3)
labels(4) = counts(4)
labels(5) = counts(5)
labels(6) = counts(6)
labels(7) = counts(7)
labels(8) = counts(8)
labels(9) = counts(9)
labels(10) = counts(10)
labels(11) = counts(11)

For k = 1 To 11
ListBox1.AddItem labels(k)
Next k
End If
Next i
End Sub

Die ermittelten Ergebnisse habe ich kontrolliert - immerhin die stimmen und Fehlermeldungen gibt es auch keine :)
Was ich leider nicht hinbekomme ist die Ausgabe in insgesamt 12 Spalten.
Auch wird scheinbar die Formatierung die Listbox in der Userform nicht übernommen bzw angezeigt.
Hat jemand eine Idee?

Die beiliegende Datei ist eine ältere Demo, die ich gerne zum Testen nehme und dann den bestenfalls funktionieren Code in das aktuelle Projekt übertrage.

https://www.herber.de/bbs/user/167233.xlsm

Im Voraus schon mal lieben Dank

Grüße, Nordic(Uwe)

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ergebnisse in einer Listbox in Spalten darstellen
21.02.2024 22:02:07
Alwin Weisangler
Hallo Uwe,

wenn ich es richtig verstanden habe so:


Private Sub UserForm_Initialize()
Dim ws As Worksheet
Dim currentDate As Date
Dim targetDate As Date
Dim i As Long
Dim j As Long
Dim k As Long
Dim rowIndex As Long
Dim counts()

Set ws = ThisWorkbook.Sheets("Projektplan")
currentDate = Date
targetDate = ws.Range("R7").Value + 7

With ListBox1
.ColumnCount = 12
.ColumnWidths = "200;40;40;40;40;40;40;40;40;40;40;40"
.Left = 10
.Top = 10
.Width = 1200
.Height = 100
.BorderStyle = 1
.SpecialEffect = 2
End With
For i = 7 To gLR
If ws.Cells(i, "R").Value + 7 > currentDate Then
rowIndex = ListBox1.ListCount
k = k + 1
ReDim Preserve counts(1 To 12, 1 To k)
counts(1, k) = ws.Cells(i, "B").Value
For j = 2 To 12
counts(j, k) = Application.WorksheetFunction.CountIf(ws.Range("W" & i & ":NX" & i), j - 1)
Next j
counts(10, k) = counts(10, k) + Application.WorksheetFunction.CountIf(ws.Range("W" & i & ":NX" & i), "P")
End If
Next i
counts = Application.Transpose(counts)
ListBox1.List = counts
End Sub


Gruß Uwe
Anzeige
AW: Ergebnisse in einer Listbox in Spalten darstellen
21.02.2024 22:11:59
Alwin Weisangler
Sorry, hatte was übersehen.

ändere die Zeile so:


counts(11, k) = counts(11, k) + Application.WorksheetFunction.CountIf(ws.Range("W" & i & ":NX" & i), "P")

Ich hatte da die 10 nicht geändert.
Gruß Uwe

AW: Ergebnisse in einer Listbox in Spalten darstellen
22.02.2024 07:49:48
Nordic
Guten Morgen Uwe,
fantastisch :) Läuft perfekt!
Ganz lieben Dank für Deine Mühe.
Eine Frage dazu treibt mich noch um:
Wie in beiliegender Demo ersichtlich ist werden je TN in E$7:O$7 die individuellen Modulkombinationen mit "x" markiert.
Spalte E entspricht Modul 1, F Modul 2, ...
Das soll auch so bleiben, da z.B. die Berechnung des voraussichtlichen Enddatum davon abhängt.

Lässt sich das ohne allzu großen Aufwand bei der Ausgabe der Listboxinhalte berücksichtigen?
(Nur wenn Modul gewählt, dann in Listbox1 ermittelter Wert oder 0, ansonsten "")

https://www.herber.de/bbs/user/167235.xlsm

Nochmal herzlichen Dank und Grüße, Nordic (Uwe)

Anzeige
AW: Ergebnisse in einer Listbox in Spalten darstellen
22.02.2024 10:04:49
Alwin Weisangler
Hallo Uwe,

wenn ich es richtig verstanden habe, wäre der Weg über eine Ausschlussabfrage:


Private Sub UserForm_Initialize()
Dim ws As Worksheet
Dim currentDate As Date
Dim targetDate As Date
Dim i As Long
Dim j As Long
Dim k As Long
Dim rowIndex As Long
Dim counts()

Set ws = ThisWorkbook.Sheets("Projektplan")
currentDate = Date

With ListBox1
.ColumnCount = 12
.ColumnWidths = "100;30;30;30;30;30;30;30;30;30;30;30"
End With

For i = 7 To gLR
If ws.Cells(i, "R").Value > currentDate And ws.Cells(i, "D").Value currentDate Then
rowIndex = ListBox1.ListCount
k = k + 1
ReDim Preserve counts(1 To 12, 1 To k)
counts(1, k) = ws.Cells(i, "B").Value
For j = 2 To 12
If ws.Cells(i, j + 3) = "x" Then
counts(j, k) = Application.WorksheetFunction.CountIf(ws.Range("W" & i & ":NX" & i), j - 1)
End If
Next j
counts(11, k) = counts(11, k) + Application.WorksheetFunction.CountIf(ws.Range("W" & i & ":NX" & i), "P")
End If
Next i
counts = Application.Transpose(counts)
ListBox1.List = counts
End Sub


Gruß Uwe
Anzeige
AW: Ergebnisse in einer Listbox in Spalten darstellen
22.02.2024 19:19:46
Nordic
So "einfach" und doch so gut
Klappt hervorragend - Danke :)
Grüße, Uwe

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige