Bonjour.
Contexte :
Un fichier Classif et un fichier Histo (dans un sous-répertoire Sauvegarde qui se trouve dans le même répertoire que Classif).
Dans le fichier Classif un module qui crée un menu dans la barre :
et un module qui vérifie si Histo est ouvert :
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 ... Call VerifHisto.EtatHisto oSh = "Histo.xls" i = VerifClasseur(ThisWorkbook.Path & "\Sauvegardes\" & oSh) ... ' 3..... Histo Set cbSubMenu3 = cbMenu.Controls.Add(msoControlPopup, 1, , , True) With cbSubMenu3 .Caption = "&Histo" .Tag = "Histo" .BeginGroup = True End With ' 3.1.....Ajouter "Ouvrir" au sous-menu Histo With cbSubMenu3.Controls.Add(msoControlButton, 1, , , True) .Caption = "&Ouvrir l'historique" .OnAction = ThisWorkbook.Name & "!AffHisto" .Style = msoButtonIconAndCaption .FaceId = 2937 .State = msoButtonDown .Enabled = i = 0 End With ' 3.2.....Ajouter "Fermer" au sous-menu Histo With cbSubMenu3.Controls.Add(msoControlButton, 1, , , True) .Caption = "&Fermer l'historique" .OnAction = ThisWorkbook.Name & "!FermHisto" .Style = msoButtonIconAndCaption .FaceId = 4088 .State = msoButtonDown .Enabled = i = 70 End With ...
Je ne parviens pas à mettre à jour mon menu (Activation de la commande Ouvrir ou fermer) selon l'état du fichier Histo.
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
38
39
40
41
42
43 Option Explicit Private Function VerifClasseur(Fichier As String) As Integer 'Sur Developpez.net Dim x As Integer On Error Resume Next x = FreeFile() Open Fichier For Input Lock Read As #x Close x VerifClasseur = Err.Number On Error GoTo 0 End Function Function WOuvert(sNom As String) As Boolean 'Sur Developpez.net Dim Wkb As Workbook WOuvert = False For Each Wkb In Workbooks If Wkb.Name = sNom Then WOuvert = True Exit For End If Next Wkb End Function Sub EtatHisto() ' Déclarer les variables Dim oWb As Workbook Dim i As Integer Dim oSh As String oSh = "Histo.xls" i = VerifClasseur(ThisWorkbook.Path & "\Sauvegardes\" & oSh) End Sub
Je vous remercie par avance pour les conseils que vous pourrez me donner.
Bien cordialement,
Edit : Il semble qu'en déclarant i en public en début de module, cela résout le problème.
Merci à ceux qui m'ont lu.
Partager