Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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.
Antworten Top
#2
Hallo Hady,

ziemlich verwirrend.
Les mal bitte meine Signatur
Antworten 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)
Antworten 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
Antworten 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
Antworten 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.
Antworten 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
Antworten 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
Antworten Top
#9
Hallo Wastl,

vielen Dank für deine Rückmeldungen.

Besonders der zweite von dir geteilte Link hat funktioniert.

Vielen Dank, klasse :)
Antworten Top
#10
Hi,

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


Gehe zu:


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