Registriert seit: 03.10.2018
Version(en): 2010 ProPlus / 2016 ProPlus
... na toll ! Es braucht hier im 'Cleveren' Forum 2 ganze Seiten und 20 Posts, bis einer dem Fragenden richtig hilft ? Respekt ... die Herren. So sollte es eigentlich gehen ... PHP-Code: Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) For i = 1 To Thisworkbook.Worksheets.Count With Thisworkbook.Worksheets(i) .Unprotect Password:="" If .FilterMode = True Then .ShowAllData
.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
Wenn das nicht funktioniert, dann weiß ich nicht warum.
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen, Zitat:Es braucht hier im 'Cleveren' Forum 2 ganze Seiten und 20 Posts, bis einer dem Fragenden richtig hilft ? da hat sich vom Anfang bis zum Ende aber auch einiges getan ...
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 03.10.2018
Version(en): 2010 ProPlus / 2016 ProPlus
13.11.2018, 19:48
(Dieser Beitrag wurde zuletzt bearbeitet: 13.11.2018, 19:49 von Flotter Feger.)
Hallo, @Schauan: Sorry, bin ich hier nur nicht gewohnt. Habe mir übrigens den ganzen Thread noch einmal durchgelesen ... ListObjects hat der TO auf seinen Tabellen (siehe Post #10) ... dann so ... PHP-Code: Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) For i = 1 To ThisWorkbook.Worksheets.Count With ThisWorkbook.Worksheets(i) .Unprotect Password:="" With .ListObjects(1).AutoFilter If .FilterMode = True Then .ShowAllData End With
.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
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallo Sabina, wenn Du jetzt noch eine Schleife über alle Listobjekte eines Blattes einbauen würdest
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 06.01.2018
Version(en): 2013
14.11.2018, 15:30
(Dieser Beitrag wurde zuletzt bearbeitet: 14.11.2018, 15:30 von ExcelNeuling99.)
Hallo Sabrina,
ich habe den Code nun ausprobiert. Wenn ich die Datei speichere erhalte ich immer die folgende Fehlermeldung:
Laufzeitfehler 9: Index außerhalb des gültigen Bereichs
-> es liegt an der folgenden Zeile: With .ListObjects(1) .AutoFilter
Unabhängig davon läuft es trotzdem durch und macht am Ende was es soll:)
Registriert seit: 03.10.2018
Version(en): 2010 ProPlus / 2016 ProPlus
14.11.2018, 16:01
(Dieser Beitrag wurde zuletzt bearbeitet: 14.11.2018, 16:01 von Flotter Feger.)
Abgesehen davon, dass ich Sabina heiße ... Yippie !!! :19:
Dann hast du wohl in einer Tabelle keine intelligente Tabelle drin ...
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
14.11.2018, 16:22
(Dieser Beitrag wurde zuletzt bearbeitet: 14.11.2018, 16:22 von Kuwer.)
Hi, (14.11.2018, 16:01)Flotter Feger schrieb: Dann hast du wohl in einer Tabelle keine intelligente Tabelle drin ... jetzt ziehst Du es aber unnötig in die Länge. Mit der Umsetzung der Bitte von André gäbe es keinen Fehler (zumindest ListObjects betreffend). PS: Man kann auch mehr als 10 Posts pro Seite einstellen. Gruß Uwe
Registriert seit: 03.10.2018
Version(en): 2010 ProPlus / 2016 ProPlus
Hallo Uwe, du bist ja hartnäckig ... :20: PHP-Code: Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Dim i As Long, LstO As ListObject
For i = 1 To ThisWorkbook.Worksheets.Count With ThisWorkbook.Worksheets(i) .Unprotect Password:="" For Each LstO In .ListObjects With LstO.AutoFilter If .FilterMode = True Then .ShowAllData End With Next LstO .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
Jetzt zufrieden ? Ja, ich weiß ... wieder ein Post mehr ... den hätte ich mir sparen können, wenn ich es gleich so gemacht hätte ... schon klar, Onkel Uwe !!! :17: :19:
|