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

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
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

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige