Microsoft Excel

Herbers Excel/VBA-Archiv

Bei "Datei schließen" Filter etc. zurücksetzen

Betrifft: Bei "Datei schließen" Filter etc. zurücksetzen von: Stefan
Geschrieben am: 22.10.2014 16:01:11

Hallo,

ich suche eine Möglichkeit, um beim Schließen einer Datei gleichzeitig alle Filter und ausgeklappten Gruppierungen zurückzusetzen ("aufräumen").

Da die Datei von vielen Personen genutzt wird wäre es schön, wenn die Herrschaften vor dem Schließen dafür keine eigene Schaltfläche klicken müssen- machen nämlich dann die wenigsten (Motto: hinter mir die Sintflut)

Hat jemand eine Idee?

Grüße,
Stefan

  

Betrifft: AW: Bei "Datei schließen" Filter etc. zurücksetzen von: Matze Matthias
Geschrieben am: 22.10.2014 16:18:50

Hallo Stefan,
ob ich dir helfen kann weis ich noch nicht aber was meinst du mit "alle" Filter
- Den Autofilter , auf "allen" Sheets ?
- vermutlich "alle" Gruppierungen in "allen" Sheets ?


Option Explicit
'Ereignis bevor die Mappe geschlossen wird
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim blatt As Object

With Application
    .ScreenUpdating = False
    .EnableEvents = False
    .DisplayAlerts = False
End With
  
    For Each blatt In Sheets
      'Dein Codezeile was er in Jedem Blatt erledigen soll
      blatt.Visible = True 'blendet alle Sheets ein
    Next blatt
    
With Application
    .ScreenUpdating = True
    .EnableEvents = True
    .DisplayAlerts = True
End With

End Sub

hier ein kleines Beispiel,
Gruß Matze


  

Betrifft: AW: Bei "Datei schließen" Filter etc. zurücksetzen von: Stefan
Geschrieben am: 22.10.2014 16:40:42

Hallo Matze,

also die Datei hat nur ein Sheet- hier sollen allfällig gesetzte Einschränkungen im Autofilter zurückgesetzt (der Autofilter selbst aber nicht entfernt!) und die Gruppierungen alle eingeklappt werden (links also nur noch die "Plus-Zeichen" sichtbar, keine "Minus" mehr; ist jetzt zwar total primitv ausgedrückt, aber was soll's)

Wenn Dein Beispiel das umsetzt- was mache ich dann mit dem Code? Habe in VBA bisher nur aufgezeichnet...

Grüße,
Stefan


  

Betrifft: AW: Bei "Datei schließen" Filter etc. zurücksetzen von: Matze Matthias
Geschrieben am: 22.10.2014 16:48:07

Hallo Peter,
darfst du die Datei hier einstellen, dann verwende dazu den FileUpload

"fcs" hat dir einen kompletten schön strukturierten Code geschrieben,
der muss halt dann auf die Datei angepasst werden,

Gruß Matze


  

Betrifft: AW: Bei "Datei schließen" Filter etc. zurücksetzen von: Stefan
Geschrieben am: 22.10.2014 17:29:01

Hallo Matze und auch alle anderen, die sich bisher beteilgt haben!

Habe eine vereinfachte Demodatei hochgeladen- beim Schließen der Datei sollten wie gesagt Autofilter zurückgesetzt und die Gruppierungen zusammengeklappt werden, also schön aufräumen.
Wenn möglich, ohne dafür seperat auf eine Schaltfläche klicken zu müssen.

https://www.herber.de/bbs/user/93295.xlsx

Grüße,
Stefan

(Peter kommt später) ;-)


  

Betrifft: dann so,.. von: Matze Matthias
Geschrieben am: 22.10.2014 17:42:24

Hallo Peter,

VBA Editor öffnen, links doppelklick auf dieseArbeitsmappe, recht dann den unteren Code einfügen.

Option Explicit

Private Sub Workbook_BeforeClose(Cancel As Boolean)
  If ActiveSheet.AutoFilterMode Then
    If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData
  End If
  
  ActiveSheet.Outline.ShowLevels RowLevels:=1, ColumnLevels:=0
End Sub

Die Datei bekommt dann die Endung .xlsm !!!!!!!!!
Gruß Matze


  

Betrifft: Sorry für den Peter, By Stefan owT von: Matze Matthias
Geschrieben am: 22.10.2014 17:45:05




  

Betrifft: AW: Sorry für den Peter, By Stefan owT von: Stefan
Geschrieben am: 23.10.2014 15:06:10

Hallo,

danke an alle, funktioniert super!

Lg
Stefan


  

Betrifft: AW: Bei "Datei schließen" Filter etc. zurücksetzen von: Patrick
Geschrieben am: 22.10.2014 16:56:04

Hallo Stefan

Filter zurückzusetzen:

With ActiveSheet
    If .FilterMode Then .ShowAllData
End With
Das mit der Gruppierung habe ich noch nicht hingekriegt, werde aber noch ein wenig versuchen.

Gruss
Patrick


  

Betrifft: evtl. hilft auch -> ShowAllData ...owT von: Matthias L
Geschrieben am: 22.10.2014 16:26:08




  

Betrifft: AW: Bei "Datei schließen" Filter etc. zurücksetzen von: fcs
Geschrieben am: 22.10.2014 16:32:32

Hallo Stefan,

per Ereignis-Makro kann man vor dem Schließen der Datei die Anzeige der Tabellenblätter in einen Grundzustand setzen. Allerding müssen dann die ANwender beim Öffnen der Datei auch die Makros aktiivieren.

Fall die Blätter mit Blattschutz geschützt werden, dann muss der Blattschutz ggf. auch kurzzeitig deaktiviert und wieder aktiviert werden.

Gruß
Franz

'Code im VBA-Editor unter DieseArbeitsmappe der Datei
Private Sub Workbook_BeforeClose(Cancel As Boolean)
  Dim bolSaved As Boolean, wks As Worksheet
  
  bolSaved = Me.Saved
  For Each wks In Me.Worksheets
    Select Case wks.Name
      Case "Filter", "Filter (2)"
        'Autofilter in diesem Blatt zurücksetzen
        With wks
          If .AutoFilterMode = True Then
            If .FilterMode = True Then
              .ShowAllData
            End If
          End If
        End With
      Case "Gruppierung"
        'Ebenen der Gruppierung in diesem anzeigen
        With wks
          .Outline.ShowLevels Rowlevels:=4, columnlevels:=3
        End With
      Case Else
        'do nothing
    End Select
  Next
  If bolSaved = True Then Me.Save
End Sub



 

Beiträge aus den Excel-Beispielen zum Thema "Bei "Datei schließen" Filter etc. zurücksetzen"