Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1568to1572
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 zeigt bei gefilterte Daten...
22.07.2017 18:40:13
walter
Guten Abend,
irgendwie übersehe ich etwas, ich hoffe eine oder ein Fachexperte sieh das.
Ich habe in der UF gefiltert, es werden aber immer mehr Daten angezeigt obwohl
nur ein Datensatz vorhanden ist.
Ich habe die Makros aus dem Netz zusammengesucht, teste schon seit 2h.
Es sind 14 Spalten und ab Zeile 3 sind die Daten vorhanden also Zeile 2
sind die Überschriften.
Private Sub UserForm_Activate()
Dim lLetzte  As Long
Dim hwndForm  As Long
Dim hwndMenu  As Long
Dim intY      As Integer
Dim intLast   As Integer
Dim intNext   As Integer
Dim UserForm
Call Array_fuellen
With ListBox1        ' betrifft die ListBox1
' .Height = 62      ' die Höhe festlegen
' .Left = 20        ' den linken Randabstand festlegen
' .Top = 12         ' den oberen Randabstand festlegen
' .Width = 460      ' die Breite festlegen
.Font.Size = 9   ' die Schriftgröße festlegen
.ForeColor = RGB(0, 0, 255) ' Schriftfarbe immer mit RGB
.ColumnCount = 14  ' die Anzahl der Spalten festlegen
' die Breite der Spalten festlegen
.ColumnWidths = _
("0,7 cm;1,5 cm;2 cm;4 cm;3,5 cm;2,5 cm;1 cm;1,5 cm;1,3 cm;1,5 cm;1,2 cm;3,5 cm;3 cm;1cm") _
.Clear            ' die ListBox leeren          mzpqm   nkp    plz    ort   str   nr.
.Column = aTmp
End With
Label111.Caption = Label111.Caption
TextBox7.Value = Format(TextBox7.Value, "0.0")
TextBox8.Value = Format(TextBox8.Value, "#,##0.00")
TextBox9.Value = Format(TextBox9.Value, "0.00")
Label110.Caption = Format(Label110.Caption, "0.00")
TextBox10.Value = Format(TextBox10.Value, "#,##0.00")
With ActiveSheet
lLetzte = IIf(.Range("A65536")  "", 65536, .Range("A65536").End(xlUp).Row)
If lLetzte 

Public Sub Array_fuellen()
Dim lLetzte   As Long     ' letzte belegte Zeile in Spalte A
Dim lZeile    As Long     ' For/Next Zeilen-Zähler
Dim lIndex    As Long     ' der Zeilen-Index im Array
Dim iSpalte   As Integer  ' der Spalten-Index im Array
With ActiveSheet
lLetzte = .Cells(Rows.Count, 1).End(xlUp).Row
For lZeile = 3 To lLetzte    'war 2
'If Not IsEmpty(Cells(lZeile, 8)) Then ' Spalte H nicht leer?
lIndex = lIndex + 1
ReDim Preserve aTmp(1 To 15, 1 To lIndex)   'war 8
For iSpalte = 1 To 14       'war 7
aTmp(iSpalte, lIndex) = Cells(lZeile, iSpalte).Text
aTmp(15, lIndex) = lZeile   'war 8
Next iSpalte
'End If
Next lZeile
End With
End Sub
Public Sub CommandButton16_Click()
'- erst alles wieder einblenden------
'  ActiveSheet.Range("A2:n65000").EntireRow.Hidden = False
' ActiveSheet.Range("A2:N2").Select
' Selection.AutoFilter
ActiveSheet.Range("B2").Select
ActiveSheet.Range("$A$2:$N$65000").AutoFilter Field:=2, Criteria1:="Ac2"
Call UserForm_ActivateEnd Sub
mfg
walter ph

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Hat den keiner eine Idee ?
23.07.2017 09:27:28
walter
Guten Morgen,
leider komme ich nicht weiter, hat den keiner eine Idee warum immer mehrere
Zeilen angezeigt werden ?
mfg
walter ph
AW: Hat den keiner eine Idee ?
23.07.2017 09:39:45
Hajo_Zi
Hallo Walter,
nur wenige schauen auf Deinen Rechner und sehen die Datei.
Ich möchte gerne den Fehler im Original sehen.
Ich baue keine Datei nach. Die Zeit hat schon jemand investiert.
Ein Nachbau sieht meist anders aus als das Original. Darum sollte das Original verlinkt werden.
Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, kannst du diese Daten anonymisieren bzw. pseudonymisieren.
man könnte vermuten Du prüfst nicht die Zeilenhöhe beim füllen.

Ich gebe keinen Dank für eine Rückmeldung, da ich durch solche Beiträge nicht meine Beitragszahl erhöhen muss.
Rückmeldung ist ja in der Heutigen Zeit nicht üblich und die wenigen die eine Rückmeldung geben, mögen mir das verzeihen, das kein Danke für eine Rückmeldung kommt.
Anzeige
AW: Hat den keiner eine Idee ?
23.07.2017 09:40:30
Crazy
Hallo
so wie ich das sehe (kann mich auch täuschen)
spielt das Filtern in der Tabelle keine Rolle
da du ja trotzdem alle Zeilen einliest
da sollten wohl eher mit der Find-Methode dem Array
die relevanten Zeilen zugewiesen werden
ich kann mir vorstellen dass da eine Beispieldatei beim Helfen, helfen könnte
MfG Tom
ok, ich werde die Musterdatei erstellen
23.07.2017 09:57:58
walter
AW: Anbei die Musterdatei
23.07.2017 10:25:56
Hajo_Zi
Hallo Walter,
mein Vorschlag hat Dir also nicht gefallen?
Public Sub Array_fuellen()
Dim lLetzte   As Long     ' letzte belegte Zeile in Spalte A
Dim lZeile    As Long     ' For/Next Zeilen-Zähler
Dim lIndex    As Long     ' der Zeilen-Index im Array
Dim iSpalte   As Integer  ' der Spalten-Index im Array
With ActiveSheet
lLetzte = .Cells(Rows.Count, 1).End(xlUp).Row
For lZeile = 3 To lLetzte    'war 2
'If Not IsEmpty(Cells(lZeile, 8)) Then ' Spalte H nicht leer?
lIndex = lIndex + 1
ReDim Preserve aTmp(1 To 15, 1 To lIndex)   'war 8
For iSpalte = 1 To 14       'war 7
If Rows(lZeile).EntireRow.Hidden = False Then
aTmp(iSpalte, lIndex) = Cells(lZeile, iSpalte).Text
aTmp(15, lIndex) = lZeile   'war 8
End If
Next iSpalte
'End If
Next lZeile
End With
End Sub
Gruß Hajo
Anzeige
doch Hajo aber es bleiben weiter 2 zeilen stehen
23.07.2017 10:43:21
walter
Hallo Hajo,
habe natürlich dein Makro genommen, leider werden 2 Zeilen angezeigt,
obwohl in der Sheet 1 Zeile gefiltert ist.
(Habe die UF zur seite geschoben)
mfg
walter ph
AW: doch Hajo aber es bleiben weiter 2 zeilen stehen
23.07.2017 10:56:27
Hajo_Zi
Hallo Walter,
in der Datei gab es kein Autofilter und darum habe ich Zeilen ausgeblendet und es wurde korrekt angezeigt.
Ich kann Dir da nicht weiter helfen. Wie schon geschrieben schaue ich nicht auf fremde Rechner und sehe darum nicht was Du gemacht hast. Vielleicht findet sich jemand der das macht.
Ich bin dann raus.
Gruß Hajo
Anzeige
Wieso ? Du hast doch die Testdatei
23.07.2017 11:17:47
walter
Hallo Hajo,
nachvollziehen kann ich das nicht, Du hast doch die Testdatei.
Das Makro vom Tom funktioniert
mfg
walter ph
AW: Wieso ? Du hast doch die Testdatei
23.07.2017 11:20:35
Werner
Hallo Walter,
hier dein Makro geändert zurück:
Public Sub Array_fuellen()
Dim lLetzte   As Long     ' letzte belegte Zeile in Spalte A
Dim lZeile    As Long     ' For/Next Zeilen-Zähler
Dim lIndex    As Long     ' der Zeilen-Index im Array
Dim iSpalte   As Integer  ' der Spalten-Index im Array
Dim raBereich As Range
Dim raZelle As Range
With ActiveSheet
lLetzte = .Cells(Rows.Count, 1).End(xlUp).Row
Set raBereich = .Range(.Cells(3, 1), .Cells(lLetzte, 1))
For lZeile = 3 To lLetzte    'war 2
'If Not IsEmpty(Cells(lZeile, 8)) Then ' Spalte H nicht leer?
lIndex = lIndex + 1
ReDim Preserve aTmp(1 To 15, 1 To lIndex)   'war 8
For iSpalte = 1 To 14       'war 7
If .Cells(lZeile, iSpalte).EntireRow.Hidden = False Then
aTmp(iSpalte, lIndex) = Cells(lZeile, iSpalte).Text
aTmp(15, lIndex) = lZeile   'war 8
End If
Next iSpalte
'End If
Next lZeile
End With
End Sub
Gruß Werner
Anzeige
Werner, ja aber wenn man...
23.07.2017 11:35:46
walter
Hallo Werner,
super freundlich auch von Dir ein Vorschlag.
Wenn ich die UF aufgerufen habe, gefiltert, werden 2 Zeilen angezeigt.
Schließe ich die UF und öffne wieder wird in der Listbox die 1. Zeile nicht
angezeigt ist leer und in der 2. Zeile meine gefilterte Zeile angezeigt.
mfg
walter ph
Hinweis: gerade festgestellt...
23.07.2017 11:39:46
walter
Hallo zusammen,
wenn ich etwas anderes gefiltert habe z.b. wurde in der Sheet die Zeile 3 richtig
angezeigt, in der Listbox sind die beiden ersten 2 Zeilen leer !!!
mfg
walter ph
AW: Hinweis: gerade festgestellt...
23.07.2017 11:44:10
Crazy
Hallo Walter
warum willst du denn in der Tabelle UND in der Listbox filtern?
ich würde ausschließlich die filtergewählten Einträge in der Listbox anzeigen lassen
MfG Tom
Anzeige
Danke an ALLE !!! --))
23.07.2017 12:05:06
walter
Hallo Tom,
mach ich jetzt.
Alle einen schönen Sonntag noch.
mfg
walter ph
AW: doch Hajo aber es bleiben weiter 2 zeilen stehen
23.07.2017 11:07:09
Crazy
Hallo Walter
so habe ich es getestet
dabei wird aber nicht in der Tabelle gefiltert sondern nur die Treffer
in der Listbox angezeigt
im Code wird jetzt hart nach "ac2" gesucht
für flexible Suche würde ich eine Textbox nehmen
Public Sub CommandButton16_Click()
Dim s As String
Dim Found As Range
Dim FirstAddress As String
Dim lngRow As Long, lngColumn As Long, lngFoundRow As Long
Dim avntValues()
s = "ac2"
ListBox1.Clear
With Sheets("Filtern")
Set Found = .Columns(2).Find(what:=s, LookIn:=xlValues, LookAt:=xlWhole, MatchCase:= _
False)
If Not Found Is Nothing Then
FirstAddress = Found.Address
Do
lngFoundRow = Found.Row
ReDim Preserve avntValues(1 To 15, 0 To lngRow)
For lngColumn = 1 To 15
avntValues(lngColumn, lngRow) = .Cells(lngFoundRow, lngColumn).Value
Next
Set Found = .Columns(2).FindNext(after:=Found)
If Found.Address = FirstAddress Then Exit Do
lngRow = lngRow + 1
Loop
ListBox1.Column = avntValues
End If
End With
End Sub
MfG Tom
Anzeige
Hallo Tom gut habe noch ... -)
23.07.2017 11:22:08
walter
Guten Morgen Tom,
dein Makro einwandfrei.
Habe für die Filterung nur diese Zeile noch angefügt:
ActiveSheet.Range("$A$2:$N$65000").AutoFilter Field:=2, Criteria1:="ac2"
dann wird auch in der Tabelle gefiltert.
Es sollte also nur an diesem Makro liegen?
Public Sub Array_fuellen()
Dim lLetzte   As Long     ' letzte belegte Zeile in Spalte A
Dim lZeile    As Long     ' For/Next Zeilen-Zähler
Dim lIndex    As Long     ' der Zeilen-Index im Array
Dim iSpalte   As Integer  ' der Spalten-Index im Array
With ActiveSheet
lLetzte = .Cells(Rows.Count, 1).End(xlUp).Row
For lZeile = 3 To lLetzte    'war 2
'If Not IsEmpty(Cells(lZeile, 8)) Then ' Spalte H nicht leer?
lIndex = lIndex + 1
ReDim Preserve aTmp(1 To 15, 1 To lIndex)   'war 8
For iSpalte = 1 To 14       'war 7
If Rows(lZeile).EntireRow.Hidden = False Then
aTmp(iSpalte, lIndex) = Cells(lZeile, iSpalte).Text
aTmp(15, lIndex) = lZeile   'war 8
End If
Next iSpalte
'End If
Next lZeile
End With
End Sub
Ich werde nochmal rumprobieren,
Danke und schönes Wochenende.
mfg
walter ph
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