Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1660to1664
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
Listbox füllen gefilterte Werte
03.12.2018 11:50:00
Peter
Hallo ihr Excelspezialisten,
mit nachstehendem Code fülle ich die Listbox. Die Tabelle wird gefiltert. Mein Problem ist jedoch an der richtigen Stelle einzufügen, die Anweisung bezüglich den gefilterten Daten.
Private Sub CommandButton2_Click()
Dim lzC As Long                 'für Filter
Dim lz As Long                 'für Filter
Dim wks As Worksheet           'für Filter
Dim WertE As String             'für Filter WertE = Ereignis Combobox1
Dim WertA As String             'für Filter WertA = Adressauswahl Combobox2
Set wks = ActiveSheet          'für Filter
WertE = Me.ComboBox1.Value
WertA = Me.TextBox1.Value
Worksheets("Tabelle1").Select
'Anfang Löschung Werte Spalte Z Zusagen
lzC = wks.Cells(Rows.Count, 26).End(xlUp).Row       'Spalte Z = 26 Zusagen
wks.Range("Z2:Z" & lzC).ClearContents
'Ende Löschung Werte Spalte Z Zusagen
With wks
If .AutoFilterMode = True Then
If .FilterMode = True Then .ShowAllData
Selection.AutoFilter
Else
lz = .Cells(Rows.Count, 13).End(xlUp).Row    'LastZell in Tabelle3 Spalte M ermitteln
Range("A1:AC" & lz).Select
Selection.AutoFilter
ActiveSheet.Range("A1:AC" & lz).AutoFilter Field:=WertA, Criteria1:=""
ActiveSheet.Range("A1:AC" & lz).AutoFilter Field:=29, Criteria1:=WertE
End If
End With
'Ende Filtern
'Anfang Listbox1 füllen
Dim vTemp  As Variant
With Sheets("Tabelle1")
vTemp = .Range("A1", .Cells(.Rows.Count, 29).End(xlUp))
End With
With ListBox1
.Font.Size = 7
.MultiSelect = fmMultiSelectMulti
.ColumnWidths = "5,5cm;0cm;0cm;3cm;0cm;0cm;0cm;0cm;0cm;0cm;1,3cm;4cm;0cm;4cm;4cm;0cm;0cm;0cm; _
6cm;0,6cm;0,6cm;0,6cm;0,6cm;0,6cm;0,6cm;1,5cm;0cm;0cm;7cm"
'A     B   C   D   E   F   G   H   I   J     K   L   M   N   O   P   Q  _
R   S   T     U      V      W     X    Y     Z    AA  AB  AC
.ColumnCount = UBound(vTemp, 2)
.List = vTemp
End With
'Ende Listbox1 füllen
End Sub

Irgendwo muss wohl eingefügt werden Hidden...
Wäre ganz toll, wenn ihr mir die Daten ergänzen könntet.
Vielen Dank
Gruss
Peter

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listbox füllen gefilterte Werte
03.12.2018 12:59:12
Daniel
Hi
nein, geht so nicht.
wenn du die Werte einer Range einer Variablen zuweist, spielt das Ein- und Ausblenden von Zeilen keine Rolle, da wird alles übernommen.
hier mal ein paar Lösungsmöglichkeiten für dein Problem:
1. kopiere die gefilterten Daten in ein leeres Tabellenblatt und lese sie von dort ins Array ein.
beim Kopieren werden nur die sichtbaren Zeilen übernommen.
2. sortiere die Liste vor dem Filtern nach den Kriteriumsspalten, so dass die gesuchten Zeilen einen lückenlosen Block bilden.
Dann kannst du die sichtbaren Zeilen so auswählen:
vTemp = .Range("A1", .Cells(.Rows.Count, 29).End(xlUp)).SpecialCells(xlcelltypevisible)
3. lese ohne filtern alle Daten in ein.
gehe dann in einer Schleife über Listbox-Inhalte (Schleife muss rückwärts laufen) und schmeiße die nicht benötigten Zeilen wieder raus:
For x = Listbox1.ListCount - 1 to 0 step - 1
If Listbox1.List(x, WertA - 1) = "" or Listbox1.List(x, 28)  WertE Then
Listbox1.RemoveItem x
end if
Next

Gruß Daniel
Anzeige
AW: Listbox füllen gefilterte Werte
03.12.2018 13:41:55
Peter
Hallo Daniel,
besten Dank für Deine Hilfe.
Werde das ganze noch durchprüfen. Momentan fehlt mir leider die Zeit.
Melde mich ggf. nochmals.
Wünsche noch einen schönen Tag.
Gruss
Peter

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige