Guten Tag,
Ich habe eine Excel Schichtbuchdatei auf die mehrere Personen zugreifen.
Diese schliesst sich automatisch nach 2min und speichert dabei die Änderungen.
In dieser Datei sind 6 Filter damit man verschiedene Arbeitsgruppen, Schichtgruppen usw. filtern kann.
Jetzt würde ich gerne beim Beenden der Datei das alle Filter auf "alle" gesetzt werden.
Dazu habe ich auch folgendes gefunden:
Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
With ActiveSheet
If .AutoFilterMode Then ' Filter Ja/Nein
If .FilterMode Then ' Filter gesetzt?
.ShowAllData
End If
End If
End With
End Sub
Das Problem ist, das schon ein Workbook BeforeClose vorhanden ist:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next ' Fehlerebehandlung ausschalten
' Makros beenden
Application.OnTime EarliestTime:=DaEt, Procedure:="Start", Schedule:=False
Application.OnTime EarliestTime:=DaET1, Procedure:="Schliessen", Schedule:=False
On Error GoTo 0 ' Fehlerbehandlung einschalten
End Sub
Wenn ich jetzt den neuen Teil einfach mit reinsetze, fragt er mich ob ich die Änderungen speichern will.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
With ActiveSheet
If .AutoFilterMode Then ' Filter Ja/Nein
If .FilterMode Then ' Filter gesetzt?
.ShowAllData
End If
End If
End With
On Error Resume Next ' Fehlerebehandlung ausschalten
' Makros beenden
Application.OnTime EarliestTime:=DaEt, Procedure:="Start", Schedule:=False
Application.OnTime EarliestTime:=DaET1, Procedure:="Schliessen", Schedule:=False
On Error GoTo 0 ' Fehlerbehandlung einschalten
End Sub
Insgesamt sieht meine "Diese Arbeitsmappe" so aus:
Option Explicit ' Variablendefinition erforderlich
Private Sub Workbook_Open()
Zeitmakro
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next ' Fehlerebehandlung ausschalten
' Makros beenden
Application.OnTime EarliestTime:=DaEt, Procedure:="Start", Schedule:=False
Application.OnTime EarliestTime:=DaET1, Procedure:="Schliessen", Schedule:=False
On Error GoTo 0 ' Fehlerbehandlung einschalten
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
' Makro anhalten
Application.OnTime EarliestTime:=DaEt, Procedure:="Start", Schedule:=False
Zeitmakro ' Makro erneut starten
End Sub
Wie schaffe ich es, das beim Schließen/speichern die Filter auf "alle" gesetzt werden?
gruß Manfred
Ich habe eine Excel Schichtbuchdatei auf die mehrere Personen zugreifen.
Diese schliesst sich automatisch nach 2min und speichert dabei die Änderungen.
In dieser Datei sind 6 Filter damit man verschiedene Arbeitsgruppen, Schichtgruppen usw. filtern kann.
Jetzt würde ich gerne beim Beenden der Datei das alle Filter auf "alle" gesetzt werden.
Dazu habe ich auch folgendes gefunden:
Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
With ActiveSheet
If .AutoFilterMode Then ' Filter Ja/Nein
If .FilterMode Then ' Filter gesetzt?
.ShowAllData
End If
End If
End With
End Sub
Das Problem ist, das schon ein Workbook BeforeClose vorhanden ist:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next ' Fehlerebehandlung ausschalten
' Makros beenden
Application.OnTime EarliestTime:=DaEt, Procedure:="Start", Schedule:=False
Application.OnTime EarliestTime:=DaET1, Procedure:="Schliessen", Schedule:=False
On Error GoTo 0 ' Fehlerbehandlung einschalten
End Sub
Wenn ich jetzt den neuen Teil einfach mit reinsetze, fragt er mich ob ich die Änderungen speichern will.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
With ActiveSheet
If .AutoFilterMode Then ' Filter Ja/Nein
If .FilterMode Then ' Filter gesetzt?
.ShowAllData
End If
End If
End With
On Error Resume Next ' Fehlerebehandlung ausschalten
' Makros beenden
Application.OnTime EarliestTime:=DaEt, Procedure:="Start", Schedule:=False
Application.OnTime EarliestTime:=DaET1, Procedure:="Schliessen", Schedule:=False
On Error GoTo 0 ' Fehlerbehandlung einschalten
End Sub
Insgesamt sieht meine "Diese Arbeitsmappe" so aus:
Option Explicit ' Variablendefinition erforderlich
Private Sub Workbook_Open()
Zeitmakro
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next ' Fehlerebehandlung ausschalten
' Makros beenden
Application.OnTime EarliestTime:=DaEt, Procedure:="Start", Schedule:=False
Application.OnTime EarliestTime:=DaET1, Procedure:="Schliessen", Schedule:=False
On Error GoTo 0 ' Fehlerbehandlung einschalten
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
' Makro anhalten
Application.OnTime EarliestTime:=DaEt, Procedure:="Start", Schedule:=False
Zeitmakro ' Makro erneut starten
End Sub
Wie schaffe ich es, das beim Schließen/speichern die Filter auf "alle" gesetzt werden?
gruß Manfred