Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
948to952
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
948to952
948to952
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Autofilter per Makro setzen

Autofilter per Makro setzen
07.02.2008 09:20:18
peter_rv
Ich möchte einen Autofilter per Makro setzen.
Dazu habe ich folgendes Makro eingefügt:

Sub Standardfilter_setzen()
Select Case ActiveSheet.CodeName 'alternative ActiveSheet.Name
Case "sht_xyz"
Selection.AutoFilter Field:=39, Criteria1:="=offen", Operator:=xlOr, _
Criteria2:="=in Arbeit"
Selection.AutoFilter Field:=22, Criteria1:="=mittel", Operator:=xlOr, _
Criteria2:="=hoch"
Case "xxx"
dummy = 1
Case Else
dummy = 1
End Select
End Sub


Funktioniert zunächst gut - aus dem Sheet sht_xyz wird der Autofilter richtig gesetzt, aus anderen Sheets eben nicht.
Nun füge ich eine Spalte im Autofilterbereich ein, dann verschieben sich die Fields und nix geht mehr.
Also wäre mir lieber, nicht die Fields einzutragen, sondern den Eintrag im Spaltenkopf festzulegen, das Makro soll dann die Fieldnummer suchen und anschliessend filtern.
Leider hab ichs nicht hingekriegt. Wer hat einen Vorschlag ?
Danke
Zusatzaufgabe: Die Filterkriterien sollen nicht im Makro festgelegt werden, sondern im Kommentar im Spaltenkopf

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Autofilter per Makro setzen
07.02.2008 15:48:46
yogi
Tach Peter
versuchs damit:
======================

Sub Standardfilter_setzen()
Const name_filter_col_1 = "Status"
Const name_filter_col_2 = "Priorität"
Dim filter_col_1 As Long
Dim filter_col_2 As Long
Dim rng As Range
Select Case ActiveSheet.Name 'CodeName 'alternative ActiveSheet.Name
Case "sht_xyz"
' suchen nach Filterkolonne
With Rows(1)
Set rng = .Find(name_filter_col_1, lookat:=xlWhole)
End With
If rng Is Nothing Then
MsgBox ("Filterkolonne nicht gefunden!")
Exit Sub
End If
filter_col_1 = rng.Column
( für Kolonne 2 wiederholen)
Selection.AutoFilter Field:=filter_col_1, Criteria1:="=offen", Operator:=xlOr, _
Criteria2:="=in Arbeit"
( für zweites Kriterium wiederholen)
Case "xxx"
dummy = 1
Case Else
dummy = 1
End Select
End Sub


=============
das Einfügen von weiteren Kolonnen sollte kein Problem bereiten.
Achtung: die zu filternde Tabelle muss in Kolonne 1 anfangen
Gruss yogi

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige