Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: listboxen füllen

listboxen füllen
28.11.2019 13:48:22
Thomas
Hallo Excelfreunde,
mit dem diesem Macro,
Sub DatumSuchen()
Dim i
Dim lngIndex  As Long
Dim lngCount  As Long
ListBox1.Clear
ListBox1.ColumnCount = 2
With ThisWorkbook.Worksheets(1)
lngCount = ThisWorkbook.Worksheets(1).UsedRange.Rows.Count
For lngIndex = 2 To lngCount
If Day(.Cells(lngIndex, 1).Value) = monatsuche.tbtag.Text And _
Month(.Cells(lngIndex, 1).Value) = monatsuche.tbMonat.Text And _
Year(.Cells(lngIndex, 1).Value) = monatsuche.tbJahr.Text Then
ListBox1.AddItem
ListBox1.List(ListBox1.ListCount - 1, 0) = .Cells(lngIndex, 4).Value
ListBox1.List(ListBox1.ListCount - 1, 1) = .Cells(lngIndex, 4).Value
End If
Next
End With
End Sub
bekommt man gefilterte Daten ( Tag, Monat und Jahr ) in eine Listbox dargstellt.
Mit einer Listbox klappt dies auch soweit. Ich möchte jedoch mehrere Listboxen auf einmal füllen ( immer um ein Tag versetzt.
mein derzeitiger versuch sieht so aus:
Dim lngIndex As Long
Dim lngCount As Long
Dim objControl As Control
Dim objUF As Object
'ListBox1.Clear
'ListBox1.ColumnCount = 2
' textboxen und Listboxen leeren
'----------------------------------
Dim i As Integer
If TypeName(objControl) = "ListBox" Then
objControl.Clear
End If
'-----------
With ThisWorkbook.Worksheets(1)
lngCount = ThisWorkbook.Worksheets(1).UsedRange.Rows.Count
For lngIndex = 1 To lngCount
For i = 1 To 7
If Day(.Cells(lngIndex, 1).Value) = monatsuche.tbtag.Text And _
Month(.Cells(lngIndex, 1).Value) = monatsuche.tbMonat.Text And _
Year(.Cells(lngIndex, 1).Value) = monatsuche.tbJahr.Text Then
'Controls("Listbox" & i).List = "" '
Controls("Listbox" & i).ColumnCount = 2
Controls("Listbox" & i).AddItem
Controls("Listbox" & i).ListCount = ThisWorkbook.Worksheets(1).Cells(lngIndex, 3).Value
Controls("Listbox" & i).ListCount = ThisWorkbook.Worksheets(1).Cells(lngIndex, 4).Value
Next
End With
End Sub
ich komme einfach nicht weiter damit. Egal was ich versuche es klappt einfach nicht.
Kann sich dies mal jemand von euch anschauen?
https://www.herber.de/bbs/user/133474.xls
habt schon mal rechtvielen dank für euer Interesse.
mfg thomas
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: listboxen füllen
28.11.2019 13:59:55
Hajo_Zi
Hallo Thomas,
der Code kann niemals gelaufen sein.
Debbugen.

AW: listboxen füllen
28.11.2019 14:40:22
Nepumuk
Hallo Thomas,
teste mal:
Option Explicit

Private mblnEvent As Boolean

Private Sub test_fuellen()
    
    Dim lngRow As Long
    Dim lngIndex As Long
    Dim dtmDate As Date
    
    If IsNumeric(tbJahr.Text) And IsNumeric(tbMonat.Text) And IsNumeric(tbtag.Text) Then
        
        dtmDate = DateSerial(Cint(tbJahr.Text), Cint(tbMonat.Text), Cint(tbtag.Text)) - 1
        
        With ThisWorkbook.Worksheets(1)
            
            For lngIndex = 1 To 7
                
                dtmDate = dtmDate + 1
                
                Controls("ListBox" & lngIndex).ColumnCount = 2
                Call Controls("ListBox" & lngIndex).Clear
                
                For lngRow = 1 To ThisWorkbook.Worksheets(1).UsedRange.Rows.Count
                    
                    If .Cells(lngRow, 1).Value = dtmDate Then
                        
                        Call Controls("ListBox" & lngIndex).AddItem
                        Controls("ListBox" & lngIndex).List(Controls("ListBox" & lngIndex _
                            ).ListCount - 1, 0) = .Cells(lngRow, 3).Value
                        Controls("ListBox" & lngIndex).List(Controls("ListBox" & lngIndex _
                            ).ListCount - 1, 1) = .Cells(lngRow, 4).Value
                        
                    End If
                Next
            Next
        End With
    End If
End Sub

'

Private Sub DatumSuchen()

'
' Dim lngIndex As Long
' Dim lngCount As Long
' Dim dtmDate As Date
'
' dtmDate = DateSerial(CInt(tbJahr.Text), CInt(tbMonat.Text), CInt(tbtag.Text))
'
' ListBox1.ColumnCount = 2
' Call ListBox1.Clear
'
' With ThisWorkbook.Worksheets(1)
'
' For lngIndex = 2 To ThisWorkbook.Worksheets(1).UsedRange.Rows.Count
'
' If .Cells(lngIndex, 1).Value = dtmDate Then
'
' Call ListBox1.AddItem
' ListBox1.List(ListBox1.ListCount - 1, 0) = .Cells(lngIndex, 3).Value
' ListBox1.List(ListBox1.ListCount - 1, 1) = .Cells(lngIndex, 4).Value
'
' End If
' Next
' End With
'End Sub

Private Sub CommandButton1_Click()
    Call test_fuellen
End Sub

Private Sub tbJahr_Change()
    If Not mblnEvent Then Call test_fuellen
End Sub

Private Sub tbMonat_Change()
    If Not mblnEvent Then Call test_fuellen
End Sub

Private Sub tbtag_Change()
    If Not mblnEvent Then Call test_fuellen
End Sub

Private Sub UserForm_Initialize()
    mblnEvent = True
    tbtag.Value = "6"
    tbMonat.Value = "6"
    tbJahr.Value = "2013"
    Call test_fuellen
    mblnEvent = False
End Sub

Gruß
Nepumuk
Anzeige
coool, besten dank an Nepumuk
28.11.2019 15:46:41
Thomas
Hallo Nepumuk,
der Code funktioniert tadellos.
Hab riesen dank für deine Hilfe. Da habe ich mich schon seit drei Tagen dran versucht.
Perfekt.
Hajo auch dir besten dank das du dir dies angeschaut hast.
mfg thomas
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige