Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1724to1728
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
Inhaltsverzeichnis

Filter bei Ende zurücksetzen

Filter bei Ende zurücksetzen
04.12.2019 10:44:20
Airwin
https://www.herber.de/bbs/user/133593.xlsm
Hallo Comunity,
ich habe wieder einmal ein Problem. Ich habe eine Datei mit 2 Spalten, welche mit einem Filter sortiert werden können. Nun möchte ich, wenn ein Filter gesetzt ist, beim Beenden der Filter zurückgesetzt wird. Es kann aber auch sein, dass kein Filter gesetzt ist.
Um mein Problem zu verdeutlichen, habe ich eine Datei hochgeladen.
Ich bitte um Hilfe und Danke jetzt schon im Voraus.
LG Airwin

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Filter bei Ende zurücksetzen
04.12.2019 11:13:07
UweD
Hallo
Du muss den Code in DieseArbeitsmappe verschieben und das "Workbook_BeforeClose" Event nutzen.
So...
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    With Sheet1
        If .FilterMode Then .ShowAllData
    End With

End Sub

LG UweD
Anzeige
AW: Filter bei Ende zurücksetzen
04.12.2019 11:20:38
Airwin
Hallo UweD,
Danke für die Info. Das mit ... Workbook_BeforeClose... war mir klar. Trotzdem, wenn ich das so beende, dann kommt eine Fehlermeldung "Laufzeitfehler '424': Objekt erforderlich".
Was mach ich falsch?
LG Airwin
Sheet1 vs Tabelle1 owT.
04.12.2019 11:22:35
ChrisL
.
AW: Filter bei Ende zurücksetzen
04.12.2019 11:18:13
ChrisL
Hi
beim Beenden
also beim Schliessen der Datei (=Workbook_BeforeClose Ereignis). Wäre etwas ungeschickt, weil wenn die Datei ohne Speicherung geschlossen wird, dann ist das Zurücksetzen sinnlos. Umgekehrt, wenn du die Speicherung zwangsweise vornimmst, dann kann die Datei nicht mehr ohne Speichern geschlossen werden.
Darum BeforeSave, was jedoch den Nachteil hat, dass bei jeder Zwischenspeicherung der Filter zurückgesetzt wird.
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
With Tabelle1
If .FilterMode Then .ShowAllData
End With
End Sub
cu
Chris
Anzeige
AW: Filter bei Ende zurücksetzen
04.12.2019 11:27:30
fcs
Hallo Chris,
Workbook_BeforeClose Ereignismakro ist schon ok. Sobald die Datei einmal ohne gesetzte Filter gespeichert wurde, wird bei allen weiterem Öffnen der Datei das Blatt immer ohne gesetzten Filter angezeigt.
LG
Franz
AW: Filter bei Ende zurücksetzen
04.12.2019 13:00:43
ChrisL
Hi Franz
So richtig befriedigend finde ich keine der Lösungen.
Szenario BeforeClose: Angenommen ich setzen den Filter und speichere. Dann mache ich Änderungen (z.B. anderes Filterkriterium), entschliesse mich aber die Datei ohne Speicherung zu schliessen. Beim nächsten Öffnen ist der Filter noch gesetzt.
Vielleicht wäre ein Open-Ereignis die beste Lösung. Vorausgesetzt es geht nur um das Handling und nicht um den gespeicherten Zustand der Datei.
cu
Chris
Anzeige
AW: Filter bei Ende zurücksetzen
04.12.2019 13:41:30
fcs
Hallo Chris,
stimmt den Fall zwischendurch in gefilertem Zustand speichern und später bei der Sicherheitsabfrage nicht speichern hatte ich nicht auf dem Schirm.
Da ist dein Vorschlag, das Open-Ergnis zu verwenden, ggf. der einfachste Weg.
LG
Franz
AW: Filter bei Ende zurücksetzen
04.12.2019 15:10:45
Daniel
Hi
bei Verwendung von OPEN beseht die Gefahr, dass die Makros beim Öffnen nicht aktiviert werden und dann wird der Filter nicht deaktiviert.
ganz sauber wäre, beim Speichern (BeforeSave) den Filter zu deaktivieren und nach dem Speichern wieder einzurichten. Ab Excel 2010 gibt es nicht nur BeforeSave, sondern auch AfterSave, in welchem du das ausführen könntest.
um den Filterzustand zu sichern, ist der einfachste Weg die Nutzung von benutzerdefinierten Ansichten.
Private Sub Workbook_AfterSave(ByVal Success As Boolean)
ActiveWorkbook.CustomViews("xxx").Show
Me.Saved = True
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
ActiveWorkbook.CustomViews.Add ViewName:="xxx", PrintSettings:=True, RowColSettings:=True
With Tabelle1
If .FilterMode Then .ShowAllData
End With
End Sub
Gruß Daniel
Anzeige
AW: Filter bei Ende zurücksetzen
04.12.2019 11:22:20
fcs
Hallo Airwin,
es gibt ein Ereignismakro, das -wenn vorhanden- beim Schliessen der Datei gestartet wird.
Dieses kann man für deine Zwecke nutzen. Es muss unter dem Code-Modul "DieseArbeitsmappe" bzw. "ThisWorkbook" angelegt werden.
LG
Franz
'Code unter DieseArbeitsmappe
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim bolSaved As Boolean
bolSaved = Me.Saved
With Tabelle1 'Codename des Tabellenblatts ggf. anpassen
If .FilterMode Then .ShowAllData
End With
If bolSaved = True Then
Me.Save
End If
End Sub

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige