begin process at 2012 02 14 15:56:00
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Langages dérivés

 > 

VBA

 > 

Enable / Disable un menu personalisé


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Enable / Disable un menu personalisé

mercredi 12 novembre 2008 à 19:54:02 | Enable / Disable un menu personalisé

Tireur

Bonjour tout le monde.  Je m'en remet encore une fois à vous tous... : Je suis en train de créer un formulaire.  Ce formulaire sera placé sur un réseau.  J'ai placé dans le formulaire un menu personalisé dans la "commandbar" standard (groupe des menus Fichiers, Edition, etc...).  Le menu que j'ai cré en mode "Personalier..." du menu Outils lorque mon formulaire n'était pas protégé s'appel : Fonctions spéciales (Fon&ctions spéciales).  J'ai placé des macros la dedans.  Dans mon formulaire, lorqu'il ouvre, j'ai placé une fonction (module) qui récupère le nom de l'ordinateur et si ce n'est pas "EDH827", je veux que mon menu personalisé soit non disponibleComment je fais??? J'ai tenté plusieurs syntaxes de la ligne en rouge ci-bas sans résultat. 

Language :  VBA
Application : Mocrosoft Word 2002 (v10).  Je ne peux pas changer c'est celui de mon employeur.

Fonction de récupération du nom de l'ordinateur appelé à l'ouverture du formulaire :
' ----------------- DÉBUT DU CODE -------------------------------------------------------------------------------
Private Declare Function GetComputerNameA Lib "kernel32" _
(ByVal lpBuffer As String, nSize As Long) As Long

Public Function CurrentMachineName() As String

    '  Déclaration des variables.
    Dim lSize As Long
    Dim sBuffer As String
   
    '  Assignation des valeurs aux variables.
    sBuffer = Space$(16)
    lSize = Len(sBuffer)
   
    '  Récupération de l'identité de l'ordinateur.
    If GetComputerNameA(sBuffer, lSize) Then
          CurrentMachineName = Left$(sBuffer, lSize)
    End If
   
    '  Vérification de l'identité de l'ordinateur du bureau des CU se service.
    If CurrentMachineName = "EHD827" Then
        GoTo Line1:
    Else
        '  SYNTAXE PAS BONNE : Application.CommandBars("standard").Controls("Fonctions Spéciales").Enabled = False
    End If

Line1:

End Function
' -------------------------- FIN DU CODE -------------------------------------------------------------------------

Merci de votre temps.

Yann Lapointe

mercredi 12 novembre 2008 à 21:43:29 | Re : Enable / Disable un menu personalisé

DidierLoche

Bonjour,

As-tu essayé Application.CommandBars("standard").Visible = False?
Autre chose, écris le test comme ceci, ça fait plus propre !

   If CurrentMachineName <> "EHD827" Then
       
Application.CommandBars("standard").Visible = False
   End If



Didier
mercredi 12 novembre 2008 à 23:14:05 | Re : Enable / Disable un menu personalisé

Tireur

Merci pour la réponse mais je cherche vraiment a rendre non disponible ce menu en particulier.  Il est facile pour un utilisateur de refaire apparaitre ce menu (standard)

Merci pour la clarification du <> j'en prend bonne note!  J'ai appris le VB dans le temps avec
line1
line2
etc... 

De la la déformation...

Yann
jeudi 13 novembre 2008 à 19:33:57 | Re : Enable / Disable un menu personalisé

DidierLoche

Bonsoir,

Ok ! As-tu essayé tout simplement ceci :
Application.CommandBars("Fonctions Spéciales").Enabled = False

Cela devrait faire disparaitre la barre en question.

Didier
vendredi 14 novembre 2008 à 15:52:55 | Re : Enable / Disable un menu personalisé

Tireur

J'essai au travail lundi et je t'en donne des nouvelles.  Cependant, j'ai tenté plusieurs syntaxes pour la faire disparaitre...

Ce matin je crois que j'ai trouvé comment savoir "word/vba" reconnait cette commandbar.  Je vais enregistrer une nouvelle macro et simplement cliquer dessus.  Ensuite je vais voir avec VBA editor et bingo : j'aurai l'ID officiel de mon menu personalisé, ca va aider pour la désactiver.
mardi 18 novembre 2008 à 03:45:03 | Re : Enable / Disable un menu personalisé

Tireur

Bonsoir Didier, si je crée une barre de commande "Fonctions spéciales" de cette facon : Oulits, personaliser, onglet barres d'outils, Nouvelle...  ta commande fonctionne!  Ce qui sera fort probablement mon choix puisque c'est rienque de meme que ca marche.

Cependant, j'aimerais vraiment mieux ca : dans word : Outils, personaliser, onglet (2) commandes,  dernier option dans la case de gauche (nouveau menu), et c'est la que je l'ai mise (avec comme nom : Fonctions spéciales) avec les autres dans la barre tout en fait en haut de word entre les menus Fenêtre et ?    Et ma question est comment l'invalider et la valider.

mardi 18 novembre 2008 à 21:11:24 | Re : Enable / Disable un menu personalisé

DidierLoche

Réponse acceptée !

Bonsoir,
Sous VBA, tu peux ajouter et supprimer des menus. Voir exemple ci-dessous.
Tu peux ainsi créer le menu que tu veux pour certains utilisateurs et le supprimer pour d'autres.

Sub Ajout_barre()
Set myMenuBar = CommandBars.ActiveMenuBar
Set newMenu = myMenuBar.Controls.Add(Type:=msoControlPopup, _
    Temporary:=True)
newMenu.Caption = "Fonctions spéciales"
Set ctrl1 = newMenu.Controls.Add(Type:=msoControlButton, ID:=1)
With ctrl1
    .Caption = "Import"
    .TooltipText = "Import"
    .Style = msoButtonCaption
    .OnAction = "toto"
End With
Set ctrl2 = newMenu.Controls.Add(Type:=msoControlButton, ID:=1)
With ctrl2
    .Caption = "Export"
    .TooltipText = "Export"
    .Style = msoButtonCaption
    .OnAction = "titi"
End With
End Sub

Sub toto()
MsgBox "Toto !!!"
End Sub

Sub titi()
MsgBox "Titi !!!"
End Sub

Sub delete_Commandbar()
CommandBars.ActiveMenuBar.Controls("Fonctions spéciales").Delete
End Sub

Cela devrait répondre à ta question !

Bonne soirée,
Didier

mercredi 19 novembre 2008 à 02:47:43 | Re : Enable / Disable un menu personalisé

Tireur

Ah ben la je suis complé à 150%!!!  Didier, c'est ca que je recherchais!!!  La clé était que le menu devait etre cré en vba et non en mode personaliser dans word.  Comme ca ben je peux faire ce que je veux avec la barre!!!

Encore un gros merci.

Yann
mercredi 19 novembre 2008 à 22:16:37 | Re : Enable / Disable un menu personalisé

DidierLoche

Bonsoir,

Je viens de déposer un tutoriel sur le sujet.
En fouillant, je me suis rendu compte ue ce n'était pas si évident que cela et que l'aide sous VBA n'est pas très claire.
Bonne soirée,

Didier


Cette discussion est classée dans : menu, formulaire, sbuffer, placé, personalisé


Répondre à ce message

Sujets en rapport avec ce message

Formulaire et requetes Access 2000 [ par mikael ] Bonjour, J'aimerai savoir comment il faut faire pour créer un menu déroulant dans un formulaire, dont les données s'y trouvant ouvrirai des requetes p menu dans tout les formulaire [ par tipou ] bonjour Je voudais que le menu (style windows) apparaisse dans tout les formulaires sans que je sois obliger de le recreer a chaque foismerci Barres de menu Excel [ par mastere30 ] Hello tlm,je mets de nouveau vos connaissances à contribution.J'ai crée un formulaire Excel avec une petite gestion en VBA. Je voudrais bloquer les me scroll de la souris [ par eryk17 ] bonjourdans un formulaire, j'ai un menu deroulant, le problemene est que quand j'utilise le scroll de la souris pour descendre le formulaire il me cha récupération d'objet [ par bibicool ] Bonjour à tous...Je suis totalement perdu.J'aimerais savoir si je suis totalement sur la mauvaise piste où si j'ai juste loupé un truc.alors voilà,J'a récupération d'objet [ par bibicool ] Bonjour à tous...Je suis totalement perdu.J'aimerais savoir si je suis totalement sur la mauvaise piste où si j'ai juste loupé un truc.alors voilà,J'a Menu [ par edokt ] Bonjour Dans vb 6 j utilise de menu bar pour le fiormulaire j'ai un formulaire mdi, et  j'ai  un autre formulaire mdichild Dans fielle MDI j'ai un me Fermeture formulaire + execution automatique autre formulaire [ par dork_maule ] Salut a tous.J'ai un blems. Je suis en traint de créer un programme en visual basic.net qui gére les locations de voiture.Mon probléme est que j'ai cr Menu Javascript : Par dessus Flash et dessus élement Formulaire [ par celorac ] Bonjour !! J'ai fait un menu javascript.js .. inséré dans ma page html. dans le corps de ma page .. j'ai des éléments d'un formulaire. MAIS sous IE CommandBar : Qui m'appelle ? [ par AdD92 ] Bonjour, J'ai crée (à la main) une barre de menu (nom:Compta). Dans cette barre, un menu (nom:Saisie) contient 2 options (nom:Fournisseur et nom:Clien


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,593 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales