Microsoft Excel

Herbers Excel/VBA-Archiv

VBA: Spezialfilter variabel

Betrifft: VBA: Spezialfilter variabel von: Pietro
Geschrieben am: 13.08.2014 11:24:37

Hallo zusammen

Ich habe für den Spezialfilter folgenden Code:

Sheets("Tabelle1").Range("A2:J20").AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Sheets("Tabelle2").Range("B2:K5"), CopyToRange:=Range( _
"A2:I7"), Unique:=False

Ich möchte nun die Range-Bereiche "Range("A2:J20")", "Range("B2:K5")" und "Range("A2:I7")" variabler gestalten. Dazu möchte ich diese mit Cells erweitern (Beispiel "Range("A2:J20")" mit "Range(Cells(2, 1), Cells(20, 10))" ersetzen. Leider geht dies nicht!

Ziel der ganzen Übung ist: Listenbereich, Kriterienbereich und Ausgabebereich passen sich mittels letzter benutzter Zeile und Spalte automatisch den vorhandenen Daten an.

Gibt es hierzu eine Lösung?

Besten Dank.

Pietro

  

Betrifft: AW: VBA: Spezialfilter variabel von: Rudi Maintaire
Geschrieben am: 13.08.2014 11:40:45

Hallo,
als Ziel reicht eine Zelle.

Sub aaa()
  Dim rCriteria As Range
  With Sheets("tabelle2")
    Set rCrit = .Range(.Cells(1, 1), .Cells(3, 1))
  End With
  Sheets("Tabelle1").Range("A1").CurrentRegion.AdvancedFilter _
    Action:=xlFilterCopy, CriteriaRange:=rCriteria, _
    CopyToRange:=Range("A2"), Unique:=False
End Sub

Gruß
Rudi


  

Betrifft: AW: VBA: Spezialfilter variabel von: Pietro
Geschrieben am: 13.08.2014 22:37:41

Hallo Rudi

Besten Dank für die schnelle Antwort.

Sorry für meine späte Reaktion. Zuerst wollte ich den Code testen. Leider kommt immer die Fehlermeldung "ungültiger prozeduraufruf oder ungültiges Argument". Trotz intensiven Suchen konnte ich die Ursache nicht finden.

Kann mir jemand weiterhelfen?

Es grüsst

Pietro


  

Betrifft: AW: VBA: Spezialfilter variabel von: Gerold
Geschrieben am: 15.08.2014 01:31:00

Hallo Pietro

Versuchs mal so.


Sub Filtern()
Dim rCriteria As Range, rKopieren As Range
With Sheets("Tabelle2")
    .Range("A7:K500").Clear                                 'Bitte die Werte anpassen
    Set rCriteria = .Range(.Cells(5, 1), .Cells(6, 11))     'Bitte die Werte anpassen
    Set rKopieren = .Range(.Cells(10, 1), .Cells(110, 11))  'Bitte die Werte anpassen
End With
With Sheets("Tabelle1")                                     'Bitte die Werte anpassen
    .Range(.Cells(1, 1), .Cells(100, 11)).AdvancedFilter _
           Action:=xlFilterCopy, _
    CriteriaRange:=rCriteria, _
      CopyToRange:=rKopieren, _
           Unique:=False
End With
End Sub

Gruß Gerold

Rückmeldung wäre nett.


  

Betrifft: AW: VBA: Spezialfilter variabel von: Pietro
Geschrieben am: 15.08.2014 20:47:18

Hallo Gerold

Besten Dank für deine Antwort zur mitternächtlichen Stunde.

Inzwischen habe den Code getestet und er erfüllt die Anforderung vollkommen. Genau das was ich gesucht habe!

Mit der Verwendung von "letzte Zeile und letzter Spalte" kann der Filter nun flexibel programmiert werden.

Rückmeldung wäre nett. Nein, eine Rückmeldung ist selbstverständlich. Hat sich doch jemand die Mühe und auch die Zeit für eine Lösung genommen. Dafür nochmals herzlichen Dank.

Ein schönes Wochenende wünscht

Pietro


 

Beiträge aus den Excel-Beispielen zum Thema "VBA: Spezialfilter variabel"