Empêcher le menu principal d'un soft d'apparaître si pas la bonne feuille [Résolu]

Signaler
Messages postés
201
Date d'inscription
mercredi 1 décembre 2004
Statut
Membre
Dernière intervention
13 août 2005
-
Messages postés
201
Date d'inscription
mercredi 1 décembre 2004
Statut
Membre
Dernière intervention
13 août 2005
-
bonjour,

j'ai réalisé un soft sous VB editor pour un fichier excel.
a l'ouverture du fichier je veux faire apparaître le menu principal du soft (un form ordinaire) et le bouton associé dans la barre de menu d'excel. Le problème c'est que ce menu et ce bouton ne doivent apparaître que si on est sur une feuille dont le nom n'est fait que de chiffres.
J'ai écrit le code suivant pour auto open:

Public Sub Auto_Open(ByVal Sh As Object)


Dim SheetOfWork As Worksheet
Dim SheetNameToVerify As String
Dim Menu_R, Menu_C
Dim FiguresOnly As Boolean


Set SheetOfWork = Sh
ButtonName = "PMS"
SheetNameToVerify = ActiveSheet.Name
FiguresOnly = False 'if=false then the sheet does not correspond to a sheet where the software can be used


FiguresOnly = OnlyFigures(SheetNameToVerify)

'if the sheet title is not entirely numeric then user can not use the software

If FiguresOnly = False Then

If Closing = 0 Then
Menu_R = MenuBars(xlWorksheet).Menus(ButtonName).Caption
'check with the first control of the bartool
Menu_C = Application.CommandBars.ActiveMenuBar.Controls(1).Caption
'if the first control of the bartool is the PMS menu
'then make it disabled
If Menu_R = Menu_C Then
Application.CommandBars.ActiveMenuBar.Controls(1).Enabled = False
End If 'Menu_R=Menu_C
End If 'Closing=0

Else 'FiguresOnly=True

If Closing = 0 Then
'action on the PMS button
Menu_R = MenuBars(xlWorksheet).Menus(ButtonName).Caption
'check with the first control of the bartool
Menu_C = Application.CommandBars.ActiveMenuBar.Controls(1).Caption
'if the first control of the bartool is the PMS menu
'then make it enabled
If Menu_R = Menu_C Then
Application.CommandBars.ActiveMenuBar.Controls(1).Enabled = True
End If 'Menu_R=Menu_C
End If 'closing=0

Load Menu
Menu.Show

End If 'if FiguresOnly=false


End Sub

le 'onlyfigures' est un booleen renvoyé par la fonction 'FiguresOnly' et permet de verifier si le titre est entièrement fait de chiffres, auquel cas on active ce qu'on veut sur la feuille.

Mais quand j'ouvre mon fichier excel, j'ai un message me disant 'argument non facultatif'... je nepeux pas trouver où il manque pace que l'éditeur de code ne se positionne pas sur l'erreur...

auriez vous une idée de la où j'ai oublié qqch?

merki de votre aide!

Daydayerement Vôtre

4 réponses

Messages postés
262
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
19 décembre 2010
6
Re,

Mais à quoi sert la variable SheetOfWork ? A part l'instruction "Set SheetOfWork = Sh", elle n'est pas utilisée ailleurs dans la sub Auto_Open...

wape
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 123 internautes nous ont dit merci ce mois-ci

Messages postés
262
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
19 décembre 2010
6
Bonjour,

C'est tout simplement que la macro Auto_Open n'accepte pas de paramètres... Il faut donc écrire :

Public Sub Auto_Open()
...
End Sub

wape
Messages postés
201
Date d'inscription
mercredi 1 décembre 2004
Statut
Membre
Dernière intervention
13 août 2005

oui mais si je lui enlève les param dans sa déclaration, j'ai une erreur style 'objet requis' et le debugger se positionne sur 'Set SheetOfWork = Sh'... Là je sais pas ce que je dois faire parce que niveau résolution des buggs de param je suis pas très forte...

t'as une idée?

Daydayerement Vôtre
Messages postés
201
Date d'inscription
mercredi 1 décembre 2004
Statut
Membre
Dernière intervention
13 août 2005

ah c'est vrai! comme c'est un bout de code que j'utilise aussi pour autre chose, j'ai pas fait attention que certaines variables n'étaient pas utiles ici...

merci beaucoup!

Daydayerement Vôtre