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

Zeitraum

Zeitraum
18.10.2016 01:06:11
Thomas
Hallo Excelfreunde,
ich habe eine Listbox auf einer userform. Diese fülle ich mit
Application.DisplayAlerts = False
With ActiveSheet.Range("A1").CurrentRegion
If .Rows.Count > 1 Then
Set mrngData = Intersect(.Cells, .Offset(1))
Set mrngData = mrngData.Resize(, mrngData.Columns.Count + 1) ' Array um eine Spalte erweitern
End If
End With
' Listbox füllen ###################################################
Dim zeilnumer As Integer
With ListBox1
.ColumnCount = mrngData.Columns.Count
.List = mrngData.Value
For zeilnumer = 0 To .ListCount - 1
.List(zeilnumer, .ColumnCount - 1) = zeilnumer + mrngData.Row ' zeilennummer in die letzte spalte schreiben
Next
End With
'######################
Application.DisplayAlerts = True
https://www.herber.de/bbs/user/108838.xlsm
Des weiteren habe noch zwei textboxen. Nun suche ich nach einer Möglichkeit wie man in den textboxen ein "von" Datum und ein "bis" datum eingibt und dann die Listbox
für diesen Zeitraum gefiltert wird. Leider finde ich kein Beispiel im netz.
Weiss jemand wie ich dies lösen könnte?
oder hat jemand ein link zu einem Code für mich. In meiner testdatei stehen die Datumswerte in Spalte A.
MFG Thomas

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

Betreff
Datum
Anwender
Anzeige
AW: Zeitraum
18.10.2016 08:38:22
Frank
Hallo Thomas!
Als Ansatz:
If Cells(lng, 1).Value > CDate(TextBox2) Then Exit For
If Cells(lng, 1).Value >= CDate(TextBox1) Then
Versuche es an deine Bedürfnisse anzupassen!
Konnte ich helfen? Rückmeldung wäre nett!
Gruß Frank H.
klappt noch nicht ganz
18.10.2016 11:19:32
Thomas
Hallo Frank,
besten dank für deine Hilfe. Ich konnte auch schon ein wenig damit experimentieren.
Mit dem untenstehende Code klappt es wenn ich nur eine textbox berücksichtige. Sobald ich die zweite Textbox mit berücksichtige bekomme ich eine Fehlermeldung in der Zeile
ListBox1.Column = arr
" Eigenschaft Column konnte nicht gesetzt werden"
Könnt ihr euch dies noch mal anschauen?
https://www.herber.de/bbs/user/108845.xlsm
Private Sub CommandButton1_Click()
'Sub FillList1()
Dim arr() As Variant
Dim iRow As Long, iCol As Long, iCounter As Long
Dim Lzeile As Long, Lspalte As Long
Lzeile = Range("A1").CurrentRegion.Rows.Count
Lspalte = Range("A1").CurrentRegion.Columns.Count
ListBox1.Clear
ListBox1.ColumnCount = Lspalte + 1
'   ListBox1.ColumnWidths = "72;40;30;40;30;18;72;90;;;;;;;;100;"
For iRow = 2 To Lzeile
If Cells(iRow, 1).Value >= CDate(TextBox1) Then Exit For               '     >=  bedeutet  _
datum muss grösser sein
If Cells(iRow, 1).Value 

MFG Thomas
Anzeige
hab falschen ansatz glaube ich
18.10.2016 11:37:27
Thomas
Hallo
dies konnte ich nun mit
If Cells(iRow, 1).Value >= CDate(TextBox1) And Cells(iRow, 1).Value lösen.
jedoch habe ichgerade gemerkt das ich die so nicht machen kann. denn mit
Dim zeilnumer As Integer
With ListBox1
.ColumnCount = mrngData.Columns.Count
.List = mrngData.Value
For zeilnumer = 0 To .ListCount - 1
.List(zeilnumer, .ColumnCount - 1) = zeilnumer + mrngData.Row ' zeilennummer in die letzte spalte schreiben
Next
End With
fülle ich ja die Listbox da ich in der letzten Spalte der Listbox die Zeilennummer habe.
Wahrscheinlich müsste ich aus der gefüllten listbox die nichtpassenden zeilen löschen
wie könnte ich soetwas anstellen?
liebe grüsse thomas
Anzeige
AW: klappt noch nicht ganz
18.10.2016 14:18:32
Thomas
Hallo Excelfreunde,
ich bekomme es einfach nicht hin.
Diese Variante würde schon gehen.
Dim arr() As Variant
Dim iRow As Long, iCol As Long, iCounter As Long
Dim Lzeile As Long, Lspalte As Long
Lzeile = Range("A1").CurrentRegion.Rows.Count
Lspalte = Range("A1").CurrentRegion.Columns.Count + 1
ListBox1.Clear
ListBox1.ColumnCount = Lspalte
Dim zeilnummer
' ListBox1.ColumnWidths = "72;40;30;40;30;18;72;90;;;;;;;;100;"
For iRow = 2 To Lzeile
For zeilnumer = 0 To .ListCount - 1
.List(zeilnumer, .ColumnCount - 1) = zeilnumer + Lspalte.Row ' zeilennummer in die letzte spalte schreiben
Next
'###################################################################
If Cells(iRow, 1).Value >= CDate(TextBox1) And Cells(iRow, 1).Value < CDate(TextBox2) Then
'If Cells(iRow, 1).Value < CDate(TextBox2) Then
'##################################################################
'If CDate(Cells(iRow, 1)) < Date Then
iCounter = iCounter
ReDim Preserve arr(1 To Lspalte, 1 To iCounter)
For iCol = 1 To Lspalte
arr(iCol, iCounter) = Cells(iRow, iCol)
Next
End If
Next
ListBox1.Column = arr
End Sub
~f~
'##############################################
Wenn ich nur in der letzten Spalte der listbox die Zeilennummer reinbekommen würde.
Leider bekomme ich es einfach nicht hin.
mein letzter versuch ist
~f~
For zeilnumer = 0 To .ListCount - 1
.List(zeilnumer, .ColumnCount - 1) = zeilnumer + Lspalte.Row ' zeilennummer in die letzte spalte schreiben
Next
dies geht aber leider auch nicht mist.
liebe grüsse thomas
Anzeige
dank nochmal an martin
19.10.2016 02:28:50
Thomas
hallo Martin,
dies kann ich gleich mit schliessen dank deiner hilfe.
auch hier nochmal besten dank.
liebe grüsse thomas

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige