Filterkriterien aus dynamischen Array
#1
Hallo Zusammen,

ich habe ein Problem mit Filterkriterien, die aus einem dynamischen Array kommen.

Zum Hintergrund:

Ich habe in Tabellenblatt1 in Spalte A verschiedene Zahlen/Buchstaben, beginnend ab Zeile 17 (Zeile 16 = Überschrift) stehen.

In Tabellenblatt2 stehen ebenfalls Zahlen/Buchstaben (beginnden ab Zeile 3), die in ein dynmaisches Array bisher erfolgreich eingelesen werden.

Hierzu der Code:

Dim m As Variant
Dim mZeile As Integer
Dim mSpalte As Integer
Dim Projektnummer As String
Dim AnzahlProjekte As Integer
Dim ErsteProjektnummer As Variant
Dim arr()
Dim size As Integer
Dim i As Integer
Dim g As Integer


'm ist die Zeile in Projektstatus, in der die Projektnummern gesucht werden sollen
m = 0

' Startzeile für das Suchen
mZeile = 3

'Zählen der Anzahl der Projekte (dient als maximal Wertals Abbruchkriterium)
   
AnzahlProjekte = Range("A3:A126").SpecialCells(xlCellTypeVisible).Count - 3

Debug.Print AnzahlProjekte

size = AnzahlProjekte - 1

ReDim Preserve arr(size)

sichtbareZelle = Range("A3:A126").SpecialCells(xlCellTypeVisible).Value

For i = 0 To size

    arr(i) = Cells(i + 3, 1).Value
 
Next i

Nun zum Problem:

Die in diesem dynamischen Array hinterlegten Werte sollen als Filterkriterium in Tabellenblatt 1 dienen.
Ich komme allerdings nicht darauf, wie ich den Filter hierzu aktiviere, Folgendes habe ich bereits probiert:

Sheets("Tabellenblatt1").Select

Selection.AutoFilter Field:=1, Criteria1:=arr, Operator:=xlFilterValues

Wäre klasse, wenn mir jemand weiterhelfen könnte.

Vielen Dank dafür vorab.
Top
#2
Hallo Hady,

ziemlich verwirrend.
Les mal bitte meine Signatur
Top
#3
Hallo Wastl,

nun habe ich eine ganz simple Datei beigefügt.

In Tabellenblatt1 stehen alle Werte/Nummern, die mittels einem dynamischen Array gefiltert werden sollen.

In Tabellenblatt2 stehen die Werte, die in ein Array eingelesen werden und als Filterkriterien dienen.

Es gibt nun zwei Schwierigkeiten für mich:

1) Da Tabellenblatt ebenfalls gefiltert ist, sollen auch nur die angezeigten/gefilterten Werte in ein dynamisches Array eingelesen werden.
2) Das dynamische Array muss als Filterkriterium eingelesen werden, aber wie?

Ich die Aufgabenstellung ist soweit klar und mir kann geholfen werden?

Danke schonmal vorab.


Angehängte Dateien
.xlsx   Filter_aus_dynamischen_Array.xlsx (Größe: 9,6 KB / Downloads: 7)
Top
#4
Hallo,

ist vielleicht nicht ganz korrekt, aber tut bei mir:
Folgende Überlegung = Zeilenhöhe
Ausgeblendete Zeilen haben die Höhe 0
dieser Code schreibt dir die eingeblendeten Werte in den Direktbereich (aufrufen in VB-Editor mit der Tastenkombination Strg+G):

Code:
Sub einlesen()
For i = 5 To 12
If Cells(i, 1).RowHeight > 0 Then
   Debug.Print Cells(i, 1).Value
End If
Next
End Sub

Dann kannst du das weiterverarbeiten und in dein Array füllen
Top
#5
Hallo Hady,

um auf deinen ersten Betrag zurückzukommen, beschäftige dich doch mal mit dem Spezialfilter

http://www.online-excel.de/excel/singsel.php?f=5

Deine in Tabellenblatt2 gefundenen/gefilterten Werte lassen sich mit dem Spezialfilter wunderbar weiterverarbeiten, wichtig ist die selbe Überschirft oben wie unten
Top
#6
Hallo Wastl,
vielen Dank für deine schnelle Antwort.

Vielleicht habe ich es unsauber formuliert.
Mein array wird bereits richtig gefüllt.
Heist ich hab ein Array, dass alle werte bestizt, die auf Tabellenblatt1 übergeben werden sollen und als Filterkriterium verwendet werden sollen.

Heist, was ich nun benötige ist:
Wie muss die Formel für Spalte im Bereich vom z.B. Zeile 17 bis 2250 heisen, dass alle werte meines arrays (nennen wir es "arr"), angezeigt/ gefiltert werden?

Vielen Dank schonmal.
Top
#7
Hi Hady,

dort sollte etwas dabei sein.

http://www.clever-excel-forum.de/Thread-...ten-setzen
http://www.clever-excel-forum.de/Thread-...ght=filter

Gruß Elex
Top
#8
hi,

Zitat:Wie muss die Formel für Spalte im Bereich vom z.B. Zeile 17 bis 2250 heisen, dass alle werte meines arrays (nennen wir es "arr"), angezeigt/ gefiltert werden?
genau dafür würde ich den spezialfilter nehmen, das geht auch mit vba
Top
#9
Hallo Wastl,

vielen Dank für deine Rückmeldungen.

Besonders der zweite von dir geteilte Link hat funktioniert.

Vielen Dank, klasse :)
Top
#10
Hi,

zuviel der Ehre, es sind nicht meine Federn!
Der Link war von Elex und die Lösung darin von Uwe
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste