Bonjour,

J'ai un petit soucis avec mon code vba, je m'explique:

j'ai un classeur qui utilise des macros pour son bon fonctionnement et je souhaite que, lorsque les macros ne sont pas actives, toutes les feuilles soient invisibles sauf la feuille nommée "macro", et si les macros sont actives que toutes les feuilles soient visibles sauf celle nommée "macro.

De plus je veux que mon classeur se ferme automatiquement au bout de 10 min
et tout cela doit fonctionner sous excel 2003/2007 et 2010

Mon code ne fonctionne pas et je ne vois pas où est l'erreur.....

Merci de vos réponses.

Voici ce que j'ai tapé dans This Workbook

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
For s = 2 To Sheets.Count
     Sheets(s).Visible = xlVeryHidden
   Next s
If ActiveWorkbook.ReadOnly = True Then
 SaveAsUI = False
Cancel = True
 
 
End If
End Sub
 
Private Sub Workbook_Open()
  For s = 2 To Sheets.Count
    Sheets(s).Visible = True
  Next s
 If ActiveWorkbook.ReadOnly Then
        For Each WS In ActiveWorkbook.Worksheets
            WS.Protect Password:="princesse", UserInterfaceOnly:=True
            WS.EnableSelection = xlUnlockedCells
        Next
End If
  Sheets("Menu").Visible = True
    Sheets("Menu").Select
    With Application
    .DisplayFullScreen = True
    .DisplayFormulaBar = True
    .DisplayStatusBar = True
    .ActiveWindow.DisplayWorkbookTabs = True
 
End With
  Application.OnTime Now + TimeValue("00:10:00"), "FermerClasseur"
End Sub
 
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ActiveWorkbook.Save
End Sub