Je cherche à réinitialiser une feuille Excel à son ouverture
J'ai réussi à supprimer les filtres
Private Sub Workbook_Open()
With ThisWorkbook.Worksheets("Ma Feuille")
If .FilterMode Then .ShowAllData
End With
End Sub
Mais je n'y arrive pas pour les colonnes et/ou lignes masquées
Private Sub Workbook_Open()
With ThisWorkbook.Worksheets("Ma Feuille")
If .FilterMode Then .ShowAllData
.rows("1:" & .UsedRange.row).hidden=false
.columns("1:" & .UsedRange.column).hidden=false
End With
End Sub
Private Sub Workbook_Open()
With ThisWorkbook.Worksheets("Ma Feuille")
If .FilterMode Then .ShowAllData
Columns("A:ZZ").Select
Selection.EntireColumn.Hidden = False
End With
End Sub
Private Sub Workbook_Open()
With ThisWorkbook.Worksheets("Ma Feuille")
If .FilterMode Then .ShowAllData
Columns("A:ZZ").Hidden = False
End With
End Sub
Effectivement, ne fonctionne pas si on ouvre pas sur "Ma Feuille" . Comment appliquer la règle sur tout le classeur?
code fonctionnel pour "Ma Feuille"
Private Sub Workbook_Open()
With ThisWorkbook.Worksheets("Billets 17-18")
If .FilterMode Then .ShowAllData
Sheets("Billets 17-18").Select
.Cells.Columns.Hidden = 0
.Cells.Rows.Hidden = 0
Private Sub Workbook_Open()
Dim Sh As Worksheet
For Each Sh In Sheets
If Sh.FilterMode Then Sh.ShowAllData
Sh.Cells.Rows.Hidden = 0: Sh.Cells.Columns.Hidden = 0
Next
End Sub
Bonjour,
C'est parce qu'une ou plusieurs pages sont protégées.
Bruno
VB:
Private Sub Workbook_Open()
Dim Sh As Worksheet
For Each Sh In Sheets
Sh.Unprotect
If Sh.FilterMode Then Sh.ShowAllData
Sh.Cells.Rows.Hidden = 0: Sh.Cells.Columns.Hidden = 0
Next
End Sub
Merci Si...
Effectivement, le problème provient de certaines feuilles qui sont protégés et tel quel c'est fonctionnel.
Le problème maintenant est que le code modifie toutes les feuilles, pas ce que je recherche, comment soustraire les feuilles protégé de la vérification du code? Et ce en maintenant que si je ferme le classeur sur une feuille protégée, le code s'applique, à l'ouverture à toutes les feuilles non protégées.
Voici le code adapté qui correspond exactement à mes besoins
Private Sub Workbook_Open()
Dim Sh As Worksheet
For Each Sh In Sheets
If Not Sh.ProtectContents Then
If Sh.FilterMode Then Sh.ShowAllData
Sh.Cells.Rows.Hidden = 0: Sh.Cells.Columns.Hidden = 0
End If
Next
End Sub
C'est Brunoqui t'a parlé de feuilles protégées donc tu peux aussi le remercier pour l'idée .
Je n'ai pas répondu avant car je ne savais pas ce que tu voulais exactement (traiter des onglets protégés - avec peut-être des conditions différentes - ou au contraire les autres !)