Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: gefilterte Daten in Listbox einfügen

gefilterte Daten in Listbox einfügen
18.01.2009 00:30:47
Larissa
Hallo,
ich bin mir nicht sicher, ob es richtig ist, dass ich einen neuen Thread aufmache, weil ich diese Frage schon für ein anderes Makro gestellt habe.
Jetzt komme ich an einer anderen Stelle nicht weiter. Auch mit dem folgenden Mako lese ich Daten aus einer Tabelle "Artikel" in eine Listbox ein. Ich möchte aber, dass nur die gefilterten Daten eingelesen werden. Ich kann die andere Lösung irgendwie nicht auf dieses Makro übertragen.....

Private Sub UserForm_Activate()
'Unload UserForm4
Dim rngSource As Object
Dim intColums As Integer
ListBox1.Tag = 1
Set rngSource = Worksheets("Artikel").Range("A1").CurrentRegion
Set rngSource = rngSource.Offset(1, 0).Resize(rngSource.Rows.Count - 1, rngSource.Columns.  _
Count)
intColums = rngSource.Columns.Count
With Me.ListBox1
.ListStyle = fmMultiSelectSingle
.ColumnCount = intColums
.ColumnHeads = True
.RowSource = rngSource.Address(External:=-1)
End With
Set rngSource = Nothing
ListBox1.Tag = ""
ListBox1.ColumnWidths = "50 Pt;120 Pt;80 Pt;40 Pt;40 Pt;40 Pt;50 Pt"
End Sub


Wäre toll, wenn mir da nochmal jemand helfen könnte.
Vielen Dank und lieben Gruß,
Larissa

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: gefilterte Daten in Listbox einfügen
18.01.2009 00:42:53
Ramses
Hallo
Mit dem Ansatz von Tino probier mal das
Option Explicit

Private Sub UserForm_Activate()
'Unload UserForm4
Dim Zelle As Range
Dim rngSource As Object
Dim intColums As Integer
ListBox1.Tag = 1
Set rngSource = Worksheets("Artikel").Range("A1").CurrentRegion
Set rngSource = rngSource.Offset(1, 0).Resize(rngSource.Rows.Count - 1, rngSource.Columns.Count) _
intColums = rngSource.Columns.Count
With Me.ListBox1
.ListStyle = fmMultiSelectSingle
.ColumnCount = intColums
.ColumnHeads = True
.Tag = ""
.ColumnWidths = "50 Pt;120 Pt;80 Pt;40 Pt;40 Pt;40 Pt;50 Pt"
For Each Zelle In rngSource.SpecialCells(xlCellTypeVisible)
If Zelle  "" Then
.AddItem
.List(i, 0) = Zelle
.List(i, 1) = Zelle.Offset(0, 1)
.List(i, 2) = Zelle.Offset(0, 2)
.List(i, 3) = Zelle.Offset(0, 3)
.List(i, 4) = Zelle.Offset(0, 4)
.List(i, 5) = Zelle.Offset(0, 5)
.List(i, 6) = Zelle.Offset(0, 6)
i = i + 1
End If
Next
End With
Set rngSource = Nothing
ListBox1.Tag = ""
ListBox1.ColumnWidths = "50 Pt;120 Pt;80 Pt;40 Pt;40 Pt;40 Pt;50 Pt"
End Sub


Gruss Rainer

Anzeige
AW: gefilterte Daten in Listbox einfügen
18.01.2009 09:26:00
Tino
Hallo,
das wird so nicht gehen, weil rngSource gesamten Zellbereich durchläuft und nicht nur die Spalte 1.
Das mit der Überschrift kannst Du auch vergessen,
erstell Dir über der Listbox für die Überschrift einige Labels und fülle diese mit der Überschrift.
Bsp. Label1.Caption = Range("A1") usw…
Option Explicit

Private Sub UserForm_Activate()
'Unload UserForm4 
Dim Zelle As Range
Dim rngSource As Range
Dim intColums As Integer
Dim i As Long

ListBox1.Tag = "1"
Set rngSource = Worksheets("Artikel").Range("A1").CurrentRegion
Set rngSource = rngSource.Offset(1, 0).Resize(rngSource.Rows.Count - 1, rngSource.Columns.Count) _

intColums = rngSource.Columns.Count
    With Me.ListBox1
        .ListStyle = fmMultiSelectSingle
        .ColumnCount = intColums
'        .ColumnHeads = True 
        .Tag = ""
        .ColumnWidths = "50 Pt;120 Pt;80 Pt;40 Pt;40 Pt;40 Pt;50 Pt"
        For Each Zelle In rngSource.Columns(1).SpecialCells(xlCellTypeVisible)
            If Zelle <> "" Then
                 .AddItem Zelle
                 .List(i, 1) = Zelle.Offset(0, 1)
                 .List(i, 2) = Zelle.Offset(0, 2)
                 .List(i, 3) = Zelle.Offset(0, 3)
                 .List(i, 4) = Zelle.Offset(0, 4)
                 .List(i, 5) = Zelle.Offset(0, 5)
                 .List(i, 6) = Zelle.Offset(0, 6)
                i = i + 1
            End If
        Next
    End With
    Set rngSource = Nothing
    ListBox1.Tag = ""
    ListBox1.ColumnWidths = "50 Pt;120 Pt;80 Pt;40 Pt;40 Pt;40 Pt;50 Pt"
End Sub


Gruß Tino

Anzeige
Danke Tino
18.01.2009 15:33:52
Larissa
Hallo Tino,
Stimmt, bei dem Code von Rainer wurden zwar die Daten eingelesen, diw waren aber alle wild durcheinander. Deine Codeanpassung funktioniert klasse und mit den Überschriften werde ich es genau so machen, wie Du es empfohlen hast. Danke mal wieder für Deine tolle Hilfe. Das hat mich jetzt wieder ein gutes Stück dem Ziel nähergebracht ;-)
Bies denne,
Gruß, Lairssa
Anzeige
AW: Danke Tino
18.01.2009 15:53:58
Ramses
Hallo
Es ist richtig, ich habe mein Beispiel nicht getestet und nur kurz überflogen,... aber
"...diw waren aber alle wild durcheinander..."
Warum sagst du dann nichts ?
Gruss Rainer
Danke Rainer *x*
18.01.2009 19:07:37
Larissa
Hallo Rainer, ich habe Stundenlang versucht es irgendwie zu sortieren, aber immer ohne Erfolg und plötzlich kam Tino mit der Lösung. 1000 Dank trotzdem auch an Dich für Deine Mühe, die ich wirklich sehr zu schätzen weiß. Sorry, hätte mich gleich bedanken sollen. Mein Kopf ist so voll VBA, dass ich die guten Manieren zu vergessen scheine. Lieben Gruß, Larissa
Anzeige
;

Forumthreads zu verwandten Themen

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