Empêcher le menu principal d'un soft d'apparaître si pas la bonne feuille

Résolu
Daydayer Messages postés 201 Date d'inscription mercredi 1 décembre 2004 Statut Membre Dernière intervention 13 août 2005 - 28 juin 2005 à 13:08
Daydayer Messages postés 201 Date d'inscription mercredi 1 décembre 2004 Statut Membre Dernière intervention 13 août 2005 - 30 juin 2005 à 10:28
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

cs_wape Messages postés 262 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 19 décembre 2010 12
29 juin 2005 à 21:57
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
cs_wape Messages postés 262 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 19 décembre 2010 12
28 juin 2005 à 20:04
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
0
Daydayer Messages postés 201 Date d'inscription mercredi 1 décembre 2004 Statut Membre Dernière intervention 13 août 2005
29 juin 2005 à 10:28
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
0
Daydayer Messages postés 201 Date d'inscription mercredi 1 décembre 2004 Statut Membre Dernière intervention 13 août 2005
30 juin 2005 à 10:28
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
0
Rejoignez-nous