Microsoft Excel

Herbers Excel/VBA-Archiv

Autofilter Excel2010 komplett m.VBA sichern/setzen | Herbers Excel-Forum


Betrifft: Autofilter Excel2010 komplett m.VBA sichern/setzen von: Kersten
Geschrieben am: 21.08.2012 10:13:18

Hallo zusammen,

trotz der Suchfunktion komme ich nicht weiter. Ich möchte in einem Sheet mit Autofilter mittels
VBA diese aufheben und danach wieder setzen. Das Excelbeispiel >> Sub ChangeFilters() << aus
der Hilfefunktion geht nur teilweise.

+ 1 oder 2 Kriterium (Variant/String) ist ok

+ Text-Zahlenauflistung (Variant/Array) ist ok

+ Funktionen Top 10/Über dem Durchschnitt (Variant/String o /Long) ist ok

+ Schriftfarbe (Variant/Long) ist ok (Criteria1 hat den Farbwert)

- Zellfarbe (Variant/Object/Interior) geht nicht (scheint ein ganzes Objekt zu sein und nicht nur ein Farbwert)

- Datumsauflistung (Variant) geht nicht (Criteria1 & 2: Anwendungs- oder objektdefinierter Fehler)

Hat jemand ein Beispielprog das "alles" sichern (in Variable) und anschließend wieder herstellen kann?

Herzlichen Dank

Kersten

Zusatzfrage: wenn z.B. .Criteria2 nicht verwendet wird, hat sie im Fenster Überwachungsausdrücke den
"Wert" . Wenn ich .Criteria2 einer Variable zuordnen möchte,
bricht das Programm mit einem Laufzeitfehler (1004) ab. Kann ich diesen Zustand abfragen (außer mit
On Error Goto ... was irgendwie unsauber wirkt)?

  

Betrifft: AW: Autofilter Excel2010 komplett m.VBA sichern/setzen von: Josef Ehrensberger
Geschrieben am: 21.08.2012 10:18:13


Hallo Kersten,

dazu gibt es benutzerdefinierte Ansichten, kann man auch per Recorder aufzeichnen.




« Gruß Sepp »



  

Betrifft: Beispiel. von: Josef Ehrensberger
Geschrieben am: 21.08.2012 10:53:51


Hallo Kersten,

Sub sichern_und_aufheben()
  Dim objFilter As Filter
  Dim bolFilter As Boolean
  
  With ActiveSheet
    If .AutoFilterMode Then
      For Each objFilter In .AutoFilter.Filters
        If objFilter.On Then
          bolFilter = True
          Exit For
        End If
      Next
      If bolFilter Then
        ActiveWorkbook.CustomViews.Add ViewName:="temporary", _
          PrintSettings:=True, RowColSettings:=True
        .ShowAllData
      End If
    End If
  End With
End Sub


Sub wiederherstellen()
  On Error Resume Next
  With ActiveWorkbook.CustomViews("temporary")
    .Show
    .Delete
  End With
End Sub






« Gruß Sepp »



  

Betrifft: ben. def. Ansichten von: Rudi Maintaire
Geschrieben am: 21.08.2012 11:04:13

Hallo Sepp,
wenn es sich bei der Liste um eine 'richtige' Tabelle (Einfügen-Tabelle) handelt, funktionieren ben. def. Ansichten nicht. Zumindest in 2007. Ein riesiges Manko!

Gruß
Rudi


  

Betrifft: AW: Beispiel. von: Kersten
Geschrieben am: 21.08.2012 11:48:11

Hallo,

danke für die schnelle Antwort. Mit CustumViews habe ich schon experimertiert - und wieder verworfen.

Mein Sheet verfügt noch über eine Fensterfixierung.

Wenn ich ein CustomView erstelle und mit .Show wieder abrufe, verschiebt es mir mit Fensterfixierung auf die erste (mit Autofilter sichbare) Zeile/Spalte.

Selbst ein Neusetzen

If ActiveWindow.FreezePanes Then
ActiveWindow.FreezePanes = False
Range("B3").Select
ActiveWindow.FreezePanes = True
End If

brachte mit aktivem Autofilter kein Erfolg.

Grüße Kersten


Beiträge aus den Excel-Beispielen zum Thema "Autofilter Excel2010 komplett m.VBA sichern/setzen"