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.

2 x Spezialfilter im selben Arbeitsblatt
#1
Hallo Spezialisten,
in einem Arbeitsblatt möchte ich Daten über einen Spezialfilter einfügen.
Das funktioniert mit dem folgenden Makro einwandfrei:

Sheets("Mitgliederliste").Range( _
"Alle[[#Headers],[#Data],[Vorname]:[Familienverbünde]]").AdvancedFilter Action:= _
xlFilterCopy, CriteriaRange:=Sheets(" Filterkriterien").Range("AM1:AN2"), _
CopyToRange:=Range("A2"), Unique:=False

Im Abstand von mehreren Zeilen darunter möchte ich im gleichen Arbeitsblatt weitere Daten über einen zweiten Spezialfilter mit anderen Filterkriterien einfügen.
Händisch funktioniert das,
aber mit dem folgenden aufgezeichneten Makro nicht:

Sheets("Mitgliederliste").Range("Alle[[#All],[Vorname]:[Familienverbünde]]"). _
AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Sheets( _
" Filterkriterien").Range("AB1:AD2"), CopyToRange:=Range("A20:AH20"), Unique _
:=False

Was mache ich falsch. Kann mir jemand sagen wo da der Wurm drin ist und vielleicht eine Lösung anbieten? Wäre super!
Gruß Roland
Antworten Top
#2
Hi

Ein Versuch wäre die kleine Änderung in dem Teil.   CopyToRange:=Range("A20:AH20")
Code:
Sheets("Mitgliederliste").Range("Alle[[#All],[Vorname]:[Familienverbünde]]"). _
AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Sheets( _
" Filterkriterien").Range("AB1:AD2"), CopyToRange:=Range("A20"), Unique _
:=False

Aber eben auch nur ein Versuch und keine Garantie.
Antworten Top
#3
Wenn Du eh schon mit VBA arbeitest, könntest Du auch die Kriterieninhalte ändern und, den Zielbereich jeweils überschreibend, dessen Ausgaben anderswo nacheinander untereinander kopieren.

Ich würde das gleich von vornherein so anlegen.

Stehen Spezialfilter-Kriterien UNTEREINANDER, ergibt sich außerdem sowieso inhaltlich ein ODER, also eine Vermehrung der Ausgabe. Nur halt nicht in der möglicherweise von Dir beabsichtigten Reihenfolge, aber so viel Daten-Im-Griff sollte eigentlich auch da sein, um auch dies zu steuern. Und doppelte Daten werden es in der Ausgabe vermutlich auch nicht, so dass es sich inhaltlich immer um ein XODER handelt.
[-] Folgende(r) 1 Nutzer sagt Danke an LCohen für diesen Beitrag:
  • rowiwa
Antworten Top
#4
Moin,
@elex, Danke für deine Idee. hat leider auch nicht geklappt

@LCohen,
rätselhaft bleibt für mich nach wie vor warum der Spezialfilter beim Aufzeichnen des Makros funktioniert.
Die Daten werden entsprechend der Filterkriterien gefiltert und im Beispiel ab Zeile A20 eingefügt.
Beim Ausführen des aufgezeichneten Makros werden dann nur die Spaltenüberschriften aber keine Daten eingefügt.
D.h. doch, dass es grundsätzliche möglich ist den 2 mal per Spezialfilter Daten in ein Arbeitsblatt zu filtern nur mit 
Makro nicht. Großes ?
Im Anhang kannst du sehen wie das nach der Aufzeichnung aussieht.

Gruß Roland


Angehängte Dateien Thumbnail(s)
   
Antworten Top
#5
Hallo,

da kann ich dich beruhigen --> 2. Spezial in einem Blatt funktioniert .

Ich mach das immer mit Namen -> daher schaut das so aus

Sind jetzt 2 DatenQuellen -> gemeinsamer Filter -> Verschiedene Ziele


  Range("Rohdaten_Astaende").AdvancedFilter Action:=xlFilterCopy, _
        CriteriaRange:=Range("Kriterien_Material"), CopyToRange:=Range( _
        "Ziel_AStaende"), Unique:=False
        
      Range("Rohdaten_Belege").AdvancedFilter Action:=xlFilterCopy, _
        CriteriaRange:=Range("Kriterien_Material"), CopyToRange:=Range( _
        "Ziel_Belege"), Unique:=False
Antworten Top
#6
Hallo Dieter63,

Danke für das Beispiel. Meine Makros sehen im Grunde genauso aus. 

Gleiche Datenquelle, 2 verschiedene Filterkriterien, 2 verschiedene Ziele

Makro1:
Datenquelle -> Filterkriterien: AM1:AN2 -> Ziel: A2:AH2     funktioniert!!!

Makro2:
Datenquelle -> Filterkriterien: AB1:AD2 -> Ziel: A20:AH20   funktioniert nicht!!!

Das 2.Makro liefert nur die Spaltenüberschriften aus der Datenquelle aber keine Datensätze.
Ohne VBA klappt es einwandfrei.

Gruß Roland
Antworten Top
#7
Hallo zusammen,
das Problem ist gelöst.
Es lag an der Datumsformatierung in den Filterkriterienzellen.
Siehe Link
Vielen Dank an alle die mir geholfen haben.
Gruß Roland
Antworten Top


Gehe zu:


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