Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1616to1620
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 mit Ktiterium füllen

ListBox mit Ktiterium füllen
28.03.2018 17:20:59
Frank
Hallo,
ich möchte eine ListBox nach Kriterium füllen und komme hiermit nicht klar.
Tabellenname: Tabelle1 (in der erten Zeile stehen die Überschriften...)
Unten aufgeführter Code soll ergänzt werden: Zeilen nur anzeigen, wenn in Spalte "D" eine Null (0) oder das aktuelle Jahr steht (Year(heute())
Private Sub UserForm_Initialize()
With ListBox1
.ColumnCount = 4
.ColumnWidths = "1,5cm;5cm;5cm;1,5cm"
.ColumnHeads = True
ListBox1.RowSource = "Tabelle1!A2:P" & Sheets("Tabelle1").Range("A2").End(xlDown).Row
End With
End Sub

35
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ListBox mit Ktiterium füllen
28.03.2018 17:23:18
Frank
Fehler in der Aufgabenbeschreibung:
Unten aufgeführter Code soll ergänzt werden: Zeilen nur anzeigen, wenn in Spalte "D" eine Null (0) UND das aktuelle Jahr steht (Year(heute())
AW: ListBox mit Ktiterium füllen
28.03.2018 17:47:37
Daniel
Hi
die erste Aufgabenbeschreibung wahr formal korrekt und die zweite ist falsch.
in einer Zelle (Zeile der Spalte D) kann entweder eine 0 ODER das aktuelle Jahr (2018) stehen.
eine Zelle kann nicht gleichzeitig zwei verschiedene Werte annehmen.
also entweder "wenn in Spalte D eine 0 ODER in Spalte D das aktuelle Jahr steht"
oder "wenn in Spalte D eine 0 UND in einer anderen Spalte das aktuelle Jahr steht"
welche der beiden Varianten solls denn sein?
nach deiner Beschreibung nach zu filtern wäre nur möglich, wenn in Spalte D ein aus Zahl und Jahr kombinierter Text steht, also sowas wie: "2018-0", "2019-0" oder "2018-1"
und du nur die texte "2018-0" sehen willst.
wenn du mit RowSource und Columnsheads arbeiten willst, müsstest du so vorgehen:
1. Tabelle so umsortieren, dass alle Zeilen, die angezeigt werden sollen, direkt unter der Überschrift stehen (hierfür ist ggf eine Hilfsspalte mit Formel erforderlich)
2. ermitteln der letzten Zeile, welche die Bedingungen erfüllt (auch dazu kannst du die Hilfsspalte nutzen)
zuweisen der RowSource für diesen Bereich.
Gruß Daniel
Anzeige
AW: ListBox mit Ktiterium füllen
28.03.2018 17:40:05
Werner
Hallo Frank,
das geht mit RowSource nicht, da mußt du in einer Schleife über deine Spalte D laufen. Mir stellt sich aber die Frage, weshalb du über RowSource 16 Spalten in eine ListBox einlesen willst, die aber nur 4 Spalten hat?
Lade doch mal deine Mappe hier hoch.
Gruß Werner
AW: ListBox mit Ktiterium füllen
28.03.2018 18:12:45
Frank
Hallo Werner,
Die Tabelle hat 16 Spalten, ABCD beinhaltet nur Informationen und die restlichen Spalten sind mit den dazugehörigen Daten befüllt.
Aber zur Auswahl in der ListBox reichen mr die ersten 4 Spalten zur Auswahl, die dazugehörigen Daten brauchen deshalb nicht in der ListBox zu erscheinen.
Wie würde das mit einer Schleife aussehen?
Anzeige
wie würde das mit einer....
28.03.2018 18:15:25
Werner
Hallo Frank,
...Beispielmappe aussehen?
Gruß Werner
AW: wie würde das mit einer....
28.03.2018 18:17:35
Frank
Habe ich leider gerade nicht zur Hand da ich außer Haus bin.
Ist diese zwingend erforderlich?
AW: wie würde das mit einer....
28.03.2018 18:21:12
Werner
Hallo Frank,
ja, weil ich einerseits keine Lust habe zum Testen eine Datei nachzubauen, zumal die dann wahrscheinlich von deiner Datei abweichen würde, und weiterhin hast du die Frage von Daniel nicht beantwortet.
Was steht in der Spalte D und soll wann, in die Listbox eingelesen werden. Entweder steht da eine 0 oder 2018 oder ein Text. Und das würde ich gerne sehen.
Gruß Werner
AW: wie würde das mit einer....
28.03.2018 18:26:20
Frank
Da steht legiglich eine 0 (=betrifft alle Jahre) oder verschiedene Jahreszahlen wie 2015, 2016, 2017...
Im Jahr 2018 sollen dann alle Zeilen mit 0 und 2018 ausgewählt werden, im Jahr 2019 alle Zeilen mit 0 und 2019,...usw.
Anzeige
AW: wie würde das mit einer....
28.03.2018 18:58:24
Frank
Ist meine Frage deutlich klargestellt oder gibt es noch offene Fragen?
AW: wie würde das mit einer....
28.03.2018 19:07:01
Daniel
Hi
du verwechselst UND mit ODER.
wenn du alle Zeilen sehen willst, in denen eine 0 steht und alle Zeilen in denen die aktuelle Jahreszahl steht, dann lautet die Bedingung "in der Zelle steht eine 0 ODER das aktuelle Jahr"
UND würde bedeuten, dass beides gleichzeitig in der Zelle steht und das geht nicht.
(umgangsprachlich verwenden wir "und" und "oder" etwas abweichend von er mathematischen Funktion:
wir sagen "oder", wenn wir das Exklusiv-ODER meinen, "und" wenn das normale ODER gemeint ist und für das mathematische UND verwenden wir "und gleichzeitig")

Wie ich schon schrieb, am einfachsten lässt sich das für dich realisieren, wenn du deine Tabelle so anordnest, dass alle Zeilen, die in die Listbox sollen, am Anfang stehen der Tabelle stehen
hierzu erweiterst du deine Tabelle um eine Spalte mit dieser Formel in Q2
(formel bis nach unten ziehen)
=Wenn(Oder(D2=0;D2=Jahr(Heute()));1;"x")
den Code schreibst du dann wiefolgt:

Private Sub UserForm_Initialize()
Dim Ze As Long
With Sheets("Tabelle1")
Range("A:Q").Sort key1:=.Range("Q1"), order1:=xlAscending, Header:=xlYes
Ze = WorksheetFunction.Sum(.Range("Q:Q")) + 1
End With
With ListBox1
.ColumnCount = 4
.ColumnWidths = "1,5cm;5cm;5cm;1,5cm"
.ColumnHeads = True
.RowSource = "Tabelle1!A2:P" & Ze
End With
End Sub
diese Lösung hätte gegenüber der Lösung die allgemein in diesem Fall angeboten wird (nämlich mit einer Schleife über die Tabelle gehen und per AddItem die zutreffenden Inhalte zur Listbox hinzufügen) folgende Vorteile:
- du kannst weiterhin die ColumnHeads verwenden. Die ColumnHeads funktionieren nur, wenn der Listboxinhalt über RowSource mit einer Tabelle verbunden ist.
Bei über .AddItem erstellten Listboxen gibt es keine Spaltenüberschriften
- du kannst beliebig viele Spalten in die Listbox übernehmen.
Bei über .AddItem erzeugten Listboxen ist die Anzahl der Spalten auf 10 begrenzt
- die Listboxzeilen korrespondieren mit den Tabellenzeilen. dh wenn du aus der Listbox heraus auf die Tabelle zugreifen willst, kannst du einfach aus dem ListIndex die Zeilennummer ableiten (+2)
Gruß Daniel
Anzeige
AW: wie würde das mit einer....
28.03.2018 20:11:42
Frank
Super und vielen Dank, wäre ich niemals drauf gekommen.
Du hast allerdings einen"." vor Range vergessen.
Was mich etwas dabei stört ist, das dabei meine Tabelle mit der Sortierung umgeworfen wird und meine Sortierung dabei hinfällig ist. Kann man hierbei was ändern?
AW: wie würde das mit einer....
28.03.2018 20:21:26
Werner
Hallo Frank,
hier deine Testdatei. Die Listbox wird über eine Schleife befüllt, mit den Nachteilen die Daniel schon aufgezeigt hat.
Wobei ich z.B. das mit den ColumnHeads nicht gelten lasse, zumindest für mich. Ich verwende die sowieso nicht sondern mache mir lieber ein paar Labels auf die UserForm, da bin ich flexibler.
Auch die Beschränkung auf maximal 10 Spalten per Additem ist in diesem Fall (du brauchst ja nur 4 Spalten) nicht so schlimm.
Grundsätzlich stimme ich Daniel natürlich zu.
https://www.herber.de/bbs/user/120746.xlsm
Gruß Werner
Anzeige
alternative zu Columnheads
28.03.2018 20:37:00
Daniel
da würde ich eine zweite Listbox nehmen und diese mit der Überschriftenzeile der Tabelle verknüpfen.
das macht es einfacher, die Überschriften passend zu den Spalten der eigentlichen Listbox zu platzieren, weil du nur die .ColumnWidth übernehmen musst.
das geht per Code und ist wesentlich einfacher, als Labels in der Gegend rumzuschieben.
Gruß Daniel
AW: alternative zu Columnheads
28.03.2018 20:38:38
Werner
Hallo Daniel,
auch wieder wahr.
Gruß Werner
AW: wie würde das mit einer....
28.03.2018 20:31:38
Daniel
Wenn du die Vorteile, die sich aus der RowSource-Datenquelle ergeben weiterhin nutzen willst, musst du beim Schließen der Listbox die Tabelle in die alte Reihenfolge zurücksortieren.
Dabei nach der Spalte sortieren, die die Reihenfolge vorgibt. Gibt es keine solche Spalte, müsstest du eine weitere Hilfsspalte einfügen, nach der du zurücksorieren kannst.
In der Listbox sollte die Reihenfolge passen, da sich die Reihenfolge der angezeigen Zeilen zueinander nicht ändert.
Wenn du nicht umsortieren willst, dann kannst du die Tabelle auch so einlesen, da du mehr als 10 Spalten hast, mache ich es anders herum und lese alle Zeilen ein und schmeiße die nicht benötigten Zeilen wieder raus. ColumnHeads gibt jetzt nicht mehr.

with Listbox1
.ColumnCount = 4
.ColumnWidths = "1,5cm;5cm;5cm;1,5cm"
.ColumnHeads = False
.RowSource = ""
.List = Sheets("Tabelle1").Cells(1, 1).CurrentRegion
for i = .listCount - 1 to 0
Select Case .List(i, 3)
Case "0", Format(Date, "YYYY")
Case Else
.RemoveItem i
end Select
next
end with

Gruß Daniel
Anzeige
korrektur
28.03.2018 20:42:57
Daniel
for i = .listCount - 1 to 0 Step - 1
AW: korrektur
28.03.2018 20:48:06
Frank
Leider trotz der Korrektur einen Laufzeitfehler.
Zudem kann ich keine Überprüfung auf das aktuelle Jahr entdecken?
AW: korrektur
28.03.2018 21:13:24
Frank
habe den Code folgendermaßen mit Dim i und step-1 ergänzt, trotzdem Laufzeitfehler:
Eigenschaft List konnte nicht gesetzt werden. Index des Eigenschaftsfelds ungültig.
Dim i As Long
With ListBox1
.ColumnCount = 4
.ColumnWidths = "1,5cm;5cm;5cm;1,5cm"
.ColumnHeads = False
.RowSource = "Tabelle1!A2:P" & Sheets("Tabelle1").Range("A2").End(xlDown).Row
.List = Sheets("Tabelle1").Cells(1, 1).CurrentRegion
For i = .ListCount - 1 To 0 Step -1
Select Case .List(i, 3)
Case "0", Format(Date, "YYYY")
Case Else
.RemoveItem i
End Select
Next
End With
End Sub
Anzeige
AW: korrektur
28.03.2018 21:14:44
Daniel
probiers mal mit .Currentregion.Value
AW: korrektur
28.03.2018 21:16:35
Frank
dann folgender Laufzeitfehler: Zugriff verweigert
AW: korrektur
28.03.2018 21:27:51
Gerd
Hallo,
nimm den funktionierenden Code von Werner, ergänzt um eine weitere Spalte für die Zeilennummer.
Private Sub UserForm_Initialize()
Dim i As Long, loLetzte As Long
With Worksheets("Tabelle1")
loLetzte = .Cells(.Rows.Count, 4).End(xlUp).Row
End With
With Me.ListBox1
.ColumnCount = 5
.ColumnWidths = "1,5cm;5cm;5cm;1,5cm;1,5cm"
For i = 1 To loLetzte
If Worksheets("Tabelle1").Cells(i, 4).Value = 0 _
Or Worksheets("Tabelle1").Cells(i, 4) = Year(Date) Then
.AddItem Worksheets("Tabelle1").Cells(i, 1)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = Worksheets("Tabelle1").Cells(i, 2)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 2) = Worksheets("Tabelle1").Cells(i, 3)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 3) = Worksheets("Tabelle1").Cells(i, 4)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 4) = i
End If
Next i
End With
End Sub

Gruß Gerd
Anzeige
Will er wohl nicht. o.w.T.
28.03.2018 22:56:16
Werner
AW: Will er wohl nicht. o.w.T.
29.03.2018 14:14:39
Frank
Hallo und Danke.
Habe nun auch den Code von Werner am testen, da der Code von Daniel nicht so richtig bei mir möchte.
Dieser funktioniert auf anhieb und die ListBox wird richtig geladen. Natürlich kann ich aber die ausgewählten Zeilen aus dieser ListBox nicht mehr mit folgendem Code ablegen:
Dim i As Long, k As Long
With Sheets("Prognose")
k = 1
For i = 1 To ListBox1.ListCount
If ListBox1.Selected(i - 1) = False Then
k = k + 1
.Range("A" & k) = ListBox1.List(i - 1, 0)
.Range("B" & k) = ListBox1.List(i - 1, 1)
.Range("C" & k) = ListBox1.List(i - 1, 2)
.Range("D" & k) = ListBox1.List(i - 1, 3)
.Range("E" & k) = ListBox1.List(i - 1, 4)
.Range("F" & k) = ListBox1.List(i - 1, 5)
.Range("G" & k) = ListBox1.List(i - 1, 6)
.Range("H" & k) = ListBox1.List(i - 1, 7)
.Range("I" & k) = ListBox1.List(i - 1, 8)
.Range("J" & k) = ListBox1.List(i - 1, 9)
.Range("K" & k) = ListBox1.List(i - 1, 10)
.Range("L" & k) = ListBox1.List(i - 1, 11)
.Range("M" & k) = ListBox1.List(i - 1, 12)
.Range("N" & k) = ListBox1.List(i - 1, 13)
.Range("O" & k) = ListBox1.List(i - 1, 14)
.Range("P" & k) = ListBox1.List(i - 1, 15)
End If
Next i
End With
und wie werden zwei ListBoxen miteinander verknüpft, damit hier die Überschriften in der ListBox zusehen ist, wie Daniel erwähnt hat?
Anzeige
AW: Will er wohl nicht. o.w.T.
29.03.2018 14:29:05
Daniel
naja, zweite Listbox anlegen, oberhalb der ersten platzieren und über Rowsource mit der Überschriftenzeile der Tabelle verknüpfen.
soweit noch ohne Code.
Damit die Überschriften auch an der gleichen Stelle stehen wie in der eigentlichen Listbox, einfach die gleichen ColumnWidth einsetzen wie in der großen Listbox.
btw mein Code funktioniert mit deiner Datei, ich habs getestst.
wenns bei dir nicht geht, hast du noch irgendwas komisches eingebaut.
und ich bleibe dabei, für das was du vorhast, wird's einfacher wenn du die Tabellen entsprechen sortierst und beim Beenden der Userform wieder zurücksortierst.
Dann kannst du deine bisherigen Abläufe und Codes weiterverwenden.
Gruß Daniel
AW: Will er wohl nicht. o.w.T.
29.03.2018 14:35:51
Frank
Hallo und vielen Dank.
Das mit dem sortieren funktioniert zwar soweit ganz gut, aber die Tabelle bleibt sichtbar und dann sieht es etwas komisch aus, wenn die ListBox aufgerufen wird und sich auf einmal die Tabellenstruktur wegen der Sortierung verändert...
Den Fehler habe ich noch nicht in den Griff bekommen, als Hinweis noch, es ist eine Multiselect ListBox und die UserForm wird mit folgendem Code aufgerufen um die Userform an der Stelle sichtbar zu machen wo sich die Userform1 befindet:
Private Sub CommandButton1_Click()
Me.Hide
UserForm2.Left = Left
UserForm2.Top = Top
UserForm2.Show
End Sub

Kann es daran liegen?
AW: Will er wohl nicht. o.w.T.
29.03.2018 15:06:57
Frank
Mit der zweiten ListBox gibt es aber ein Problem wenn erste ListBox seitlich gescrollt wird (Überschriften aus der ListBox2 wandern nicht mit..)
Deine erste Version zum Befüllen der ListBox mit RowSource und Sortierung habe ich das Problem, da nicht gesagt werden kann, wie viele Zeilen noch hinzugefügt werden. Dann könnte evtl. in der Tabelle bei den letzten Zeilen die Formel für die Sortierung fehlen.
AW: Will er wohl nicht. o.w.T.
29.03.2018 15:27:29
Daniel
Hi
wenn du Überschriften haben willst und die Listbox so groß ist, dass sie seitlich gescrollt werden muss, dann bleibt dir nur die Lösung über die mit RowSource verknüpfte Tabelle und die ColumnHeads.
das Problem mit der Sortierformel beim Erweiteren der Tabelle kannst du so lösen.
1. lasse die Formel in der Tabelle ganz weg
2. füge die Formel vor dem Sortieren im Makro per Code am Tabellenende ein und lösche sie hinterher wieder raus.
Dann stört sie nicht beim normalen Arbeiten mit der Tabelle und du bist auch sicher, dass sie immer vollständig ist:
Code dafür sieht in etwa so aus (also bitte nicht kopieren, sondern lesen, verstehen und selber schreiben):

With Sheets("Tabelle1").Cells(1,1).CurrentRegion
With .Columns(.Columns.Count + 1)
.FormulaR1C1 = "=IF(OR(RC4=0,RC4=Year(Today())),1,""x"")"
.EntireRow.Sort key1:=.Cells(1, 1),order1:=xlascending, Header:=xlyes
AnzahlZeilen = Worksheetfunction.Sum(.Cells) + 1
.ClearContents
end with
end with

Gruß Daniel
AW: Will er wohl nicht. o.w.T.
29.03.2018 16:42:30
Frank
Perfekt Daniel!
Zusätzlich habe ich das Problem mit der "unerwünschten sichtbaren Sortierung" mit ScreenUpdating=False und nach der "zurück Sortierung" wieder mit ScreenUpdating=True gelöst, damit die Sortierung bei sichtbarer Tabelle nicht zu sehen ist.
Ich bin dir sehr zum Dank verpflichtet, bin schon seit vielen Stunden am Recherchieren und hätte ohne dich das Problem nicht lösen können - Vielen dank hierfür!!!
Gruß Frank.
AW: Will er wohl nicht. o.w.T.
01.04.2018 14:27:59
Frank
Hallo,
bin verzweifelt am Testen wie ich deine Formel erweitert bekomme...
Ich möchte gerne zusätzlich den aktuellen Monat ermitteln und bei Januar die Spalte E, bei Februar die Spalte F...usw. verwenden - dabei aber die Zellen mit dem Wert "0" auslassen.
Gruß Frank.
AW: Will er wohl nicht. o.w.T.
01.04.2018 14:46:33
Frank
Anbei noch der aktuelle Code:
Private Sub UserForm_Initialize()
Dim AnzahlZeilen As Long
Application.ScreenUpdating = False
With Sheets("Tabelle1").Cells(1, 1).CurrentRegion
With .Columns(.Columns.Count + 1)
.FormulaR1C1 = "=IF(OR(RC4=0,RC4=Year(Today())),1,""x"")"
.EntireRow.Sort key1:=.Cells(1, 1), order1:=xlAscending, Header:=xlYes
AnzahlZeilen = WorksheetFunction.Sum(.Cells) + 1
.ClearContents
End With
End With
With ListBox1
.ColumnCount = 4
.ColumnWidths = "1,5cm;5cm;5cm;1,5cm"
.ColumnHeads = True
.RowSource = "Tabelle1!A2:P" & AnzahlZeilen
End With
End Sub

AW: Will er wohl nicht. o.w.T.
01.04.2018 18:57:14
Frank
Keiner einer Idee?
Sollte ich für jeden Monat eine separate Abfrage starten?
Danke für einen Hinweis, Gruß Frank.
AW: Will er wohl nicht. o.w.T.
29.03.2018 16:47:07
Werner
Hallo Frank,
du hast ja jetzt wohl deine favorisierte Lösung aber der Vollständigkeit halber jetzt noch der Code zum Einlesen in die Listbox per Schleife (mit Zeilennummer der Tabelle) und dem Zurückschreiben der Daten unter Verwendung der vorher eingelesenen Zeilennummer.
Private Sub CommandButton1_Click()
Dim i As Long
With Sheets("Prognose")
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) Then
'Schreiben der Daten, für die richtige Zeile wird der Eintrag
'aus Spalte 5 der ListBox verwendet
.Range("A" & Me.ListBox1.List(i, 4)) = ListBox1.List(i, 0)
.Range("B" & Me.ListBox1.List(i, 4)) = ListBox1.List(i, 1)
.Range("C" & Me.ListBox1.List(i, 4)) = ListBox1.List(i, 2)
.Range("D" & Me.ListBox1.List(i, 4)) = ListBox1.List(i, 3)
End If
Next i
End With
End Sub
Private Sub UserForm_Initialize()
Dim i As Long, loLetzte As Long
With Worksheets("Tabelle1")
loLetzte = .Cells(.Rows.Count, 4).End(xlUp).Row
End With
With Me.ListBox1
'ListBox erweitert auf 5 Spalten
.ColumnCount = 5
'Spalte 5 wird nicht angezeigt, da Breite auf 0 gesetzt
.ColumnWidths = "1,5cm;5cm;5cm;1,5cm;0cm"
For i = 1 To loLetzte
If Worksheets("Tabelle1").Cells(i, 4).Value = 0 _
Or Worksheets("Tabelle1").Cells(i, 4) = Year(Date) Then
.AddItem Worksheets("Tabelle1").Cells(i, 1)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = Worksheets("Tabelle1").Cells(i, 2)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 2) = Worksheets("Tabelle1").Cells(i, 3)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 3) = Worksheets("Tabelle1").Cells(i, 4)
'einlesen der Zeilennummer in die ListBox in Spalte 5
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 4) = i
End If
Next i
End With
End Sub
Gruß Werner
AW: korrektur
28.03.2018 21:51:37
Daniel
HI
wenn du diesen Fehler bekommst, dann ist die RowSource der Listbox nicht leer.
diese muss unbedingt leer sein.
Prüfe da bitte nochmal deinen Code (meiner funktioniert mit deiner Datei)
Am besten in der Eigenschaftsliste dieses Feld direkt leeren und im Code hier nichts ändern.
ansonsten noch ne kleine Korrektur:
Case "0", CStr(Year(Date))
das findet das aktuelle Jahr besser. Format(date, "YYYY") sollte zwar auch die Jahreszahl als Text ergeben, aber es wird noch das Vorzeichen benötigt (Leerzeichen für positvie Zahlen), das erzeugt das CStr besser.
Gruß Daniel
AW: korrektur
02.04.2018 09:26:36
Frank
https://www.herber.de/bbs/user/120798.xlsm
Hallo,
anbei nochmals ein Beispielblatt: grüne Zeilen sollen in der ListBox übernommen werden, rote Zeilen sollen in der ListBox nicht erscheinen.
Momentan werden die Zeilen für die ListBox nach folgenden Kriterien ausgewählt: alle Zeilen mit dem Inhalt 0 oder aktuelles Jahr in Spalte D.
Zusätzlich sollen aber die Zeilen für die ListBox nach folgenden Kriterien ausgewählt werden: wenn aktueller Monat = Januar, dann die Zeilen aus Spalte E welche nicht den Zellenwert = 0 beinhaltet.
Kurzerklärung:
Wenn Monat = Januar: alle Zeilen aus Spalte E welche einen anderen Wert haben wie 0 und bei Spalte D das aktuelle Jahr oder eine 0 steht.
Wenn Monat = Februar: alle Zeilen aus Spalte F welche einen anderen Wert haben wie 0 und bei Spalte D das aktuelle Jahr oder eine 0 steht.
...usw.
Ich hoffe, ich habe mich verständlich ausgedrückt ansonsten bitte ich um Rückmeldung.
Vielen dank, Gruß Frank.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige