Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Alle Filter beim Schließen der Datei zurücksetzen
#11
Hallo, :19:

prinzipiell so: :21:


Code:
Dim wksSheet As Worksheet
For Each wksSheet In ThisWorkbook.Worksheets
    If wksSheet.FilterMode Then wksSheet.ShowAllData
Next wksSheet
________
Servus
Case
Antworten Top
#12
Hallo,

ich habe in "DieseArbeitsmappe" den folgenden Code eingetragen:

Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim wksSheet As Worksheet
For Each wksSheet In ThisWorkbook.Worksheets
   If wksSheet.FilterMode Then wksSheet.ShowAllData
Next wksSheet
End Sub

Das funktioniert auch beim ersten Tabellenblatt. Die anderen bleiben aber weiterhin gefiltert.
In der Microsoft Visual Basic Ansicht ist mir aber aufgefallen, dass ich zum Teil Sheet1, Sheet2 etc, aber auch Tabelle1, Tabelle2 etc. habe. Ich denke mein Problem hat damit zu tun, da Tabelle1 und Tabelle2 gefiltert bleiben.
Antworten Top
#13
Versuche mal das.. Gehe den code in einem normalen Modul mit f8 schrittweise durch:
(Ungetestet)
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

For Each sheet In sheets
   If Sheet.FilterMode Then
        Sheet.ShowAllData
    End if
Next
End Sub
Eine Menge reden, aber nichts sagen können viele...
Antworten Top
#14
Hallöchen,

mal noch zur Erklärung. Damit

For Each wksSheet In ThisWorkbook.Worksheets

gehst Du durch jedes Tabellenblatt, egal, wie es heißt.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#15
Hallo,

ich sitze immernoch dran und bekomme es einfach nicht hin.
Aktuell ist ein Blattschutz drin, was das Filtern blockiert. Daher mein Gedanke bei BeforeSave:
  1. Blattschutz bei allen Blättern entfernen
  2. Filter auf allen Blättern löschen
  3. Blattschutz bei allen Blättern / oder bei bestimmten Blättern aktivieren
Folgendes habe ich versucht:

Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
   For i = 1 To Worksheets.Count
       Worksheets(i).Unprotect Password:=""
   Next
   Application.ScreenUpdating = True


For Each Sheet In Sheets
  If Sheet.FilterMode Then
       Sheet.ShowAllData
   End If
Next


Dim sh As Long
For sh = 1 To Sheets.Count
With Sheets(sh)
.Protect UserInterfaceOnly:=True, _
DrawingObjects:=True, Contents:=True, Scenarios:=True, _
AllowFormattingCells:=True, AllowFormattingRows:=True, _
AllowInsertingRows:=True, AllowDeletingRows:=True, _
AllowFiltering:=True, AllowSorting:=True, _
Password:=""
.EnableOutlining = True 'für Gliederung
.EnableAutoFilter = True 'für Autofilter
End With
Next

End Sub

Leider wird der Filter nur auf dem aktiven Blatt deaktiviert und nicht auf allen Blättern :(
Antworten Top
#16
Hallo,

Zitat:Leider wird der Filter nur auf dem aktiven Blatt deaktiviert und nicht auf allen Blättern :(

mache eine Schleife über alle Tabellenblätter und schalte die Filter hier aus
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!

Grüße aus Norderstedt, Peter
Antworten Top
#17
Hallo,

@Blaubär:

Noch eine dritte Schleife ? Er hat doch schon zwei davon !!!
Code:
   For i = 1 To Worksheets.Count
       Worksheets(i).Unprotect Password:=""
   Next
   Application.ScreenUpdating = True


For Each Sheet In Sheets
  If Sheet.FilterMode Then
       Sheet.ShowAllData
   End If
Next

Da reicht doch schon eine ...
Code:
   For i = 1 To Worksheets.Count
     With Worksheets(i)
       .Unprotect Password:=""
       If .FilterMode Then .ShowAllData
     End With
VG Sabina

bei mir läuft Win 7 32-Bit - Office 2010 Pro Plus 32-Bit und Office 2016 Pro Plus 32-Bit
Wer auch weiter Hilfe erwartet, sollte sich nicht zu schade sein, ein kurzes Feedback zu geben.
Antworten Top
#18
Hallo flotter Feger,

sind Schleifen eine Rarität? Das habe ich nicht gewußt, sorry.

Vielleicht geht es dann, wenn man(n) mehrere Schleifen zu einer verwurstet.
Jedenfalls muß er für sein Vorhaben ohnehin in jedes Blatt.
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!

Grüße aus Norderstedt, Peter
Antworten Top
#19
Hallo,

ich habe es nun mit folgendem Code probiert.
Das Problem ist, dass lediglich der Filter in der aktiven Tabelle deaktiviert wird. Die Tabellen in den anderen Blättern bleiben sortiert. Ebenso bleibt der Filter in der Tabelle auf dem aktiven Blatt aktiv, wenn beim Speichern eine Zelle außerhalb der Tabelle markiert ist.

Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
For i = 1 To Worksheets.Count
    With Worksheets(i)
      .Unprotect Password:=""
      If .FilterMode Then .ShowAllData
    End With
Next
For i = 1 To Worksheets.Count
    With Worksheets(i)
.Protect UserInterfaceOnly:=True, _
DrawingObjects:=True, Contents:=True, Scenarios:=True, _
AllowFormattingCells:=True, AllowFormattingRows:=True, _
AllowInsertingRows:=True, AllowDeletingRows:=True, _
AllowFiltering:=True, AllowSorting:=True, _
Password:=""
.EnableOutlining = True 'für Gliederung
.EnableAutoFilter = True 'für Autofilter
End With
Next

End Sub
Antworten Top
#20
Hallo,

Zitat:Das Problem ist, dass lediglich der Filter in der aktiven Tabelle deaktiviert wird.

... drum ja auch mein Vorschlag
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!

Grüße aus Norderstedt, Peter
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste