Bonjour à tous,
Dans un de mes programmes Excel je cache toutes les feuilles à l'ouverture mais je permets d'en ouvrir quelques unes si on a le bon mot de passe.
Seulement il m'ouvre tout le temps la dernière feuille, quoi que je mette en nom.
Pour être plus clair, voici mon code :
A l'ouverture, je cache toutes mes feuilles sauf la feuille MENU et j'appelle une macro qui s'appelle aussi menu.
Jusqu'à là, pas de problème.
A l'activation d'un bouton, j'appelle ceci :
Cettte macro ne fonctionne que si la feuille STATISTICS est placée en dernière parmi toutes mes feuilles.
Si elle ne l'est pas, j'ai un message d'erreur "Unable to set the bisible property of the worksheet class". Je peux éviter ce bug en mettant "on error resume next" et dans ce cas là, il m'affichera la dernière de mes feuilles de mon classeur (donc une autre feuille que STATISTICS).
J'ai essayé plusieurs solutions (avec un .visible = True) mais rien n'y fait.
Si vous avez une solution, je suis preneur !
Merci d'avance.
Dans un de mes programmes Excel je cache toutes les feuilles à l'ouverture mais je permets d'en ouvrir quelques unes si on a le bon mot de passe.
Seulement il m'ouvre tout le temps la dernière feuille, quoi que je mette en nom.
Pour être plus clair, voici mon code :
Code:
Private Sub Workbook_Open()
On Error Resume Next
Dim Feuille As Worksheet
Application.ScreenUpdating = False
For Each Feuille In ThisWorkbook.Worksheets
Feuille.Visible = xlSheetVeryHidden
Next
With Sheets("MENU")
.Visible = True
.Activate
End With
With ActiveWindow
.DisplayGridlines = False
.DisplayHeadings = False
.DisplayHorizontalScrollBar = False
.DisplayVerticalScrollBar = False
.DisplayWorkbookTabs = False
End With
ActiveWorkbook.Protect Structure:=True, Windows:=True, Password:="TOTO"
Application.ScreenUpdating = True
Call menu
End Sub
A l'ouverture, je cache toutes mes feuilles sauf la feuille MENU et j'appelle une macro qui s'appelle aussi menu.
Jusqu'à là, pas de problème.
A l'activation d'un bouton, j'appelle ceci :
Code:
Private Sub CommandButton4_Click()
'On Error Resume Next
Unload Me
With Worksheets("STATISTICS")
.Visible = xlSheetVisible
.Activate
End With
With ActiveWindow
.DisplayGridlines = True
.DisplayHeadings = True
.DisplayHorizontalScrollBar = True
.DisplayVerticalScrollBar = True
.DisplayWorkbookTabs = True
End With
If ActiveWorkbook.ProtectStructure = True Or _
ActiveWorkbook.ProtectWindows = True Then _
ActiveWorkbook.Unprotect Password:="TOTO"
End Sub
Cettte macro ne fonctionne que si la feuille STATISTICS est placée en dernière parmi toutes mes feuilles.
Si elle ne l'est pas, j'ai un message d'erreur "Unable to set the bisible property of the worksheet class". Je peux éviter ce bug en mettant "on error resume next" et dans ce cas là, il m'affichera la dernière de mes feuilles de mon classeur (donc une autre feuille que STATISTICS).
J'ai essayé plusieurs solutions (avec un .visible = True) mais rien n'y fait.
Si vous avez une solution, je suis preneur !
Merci d'avance.
Dernière édition: