svp comment programmer un menu vba sous access ?:cry:
Version imprimable
svp comment programmer un menu vba sous access ?:cry:
Peut être déjà en commencant par lire les régles du Forum ;)Citation:
svp comment programmer un menu vba sous access ?
Egalement en disant bonjour.......et eventuellement merci :roll:
Cela dit, bienvenue à toi sur ce Forum ;)
Pour quelques exemples sur la création de menus en VBA, regarde ce lien:
http://mypage.bluewin.ch/w.stucki/Fo...m#BarresOutils
[EDIT] Tu peux aussi regarder ce lien sur la création d'une barre d'outils/menus grace à un OCX (MSCOMCTL.OCX):
http://officesystem.access.free.fr/toolbar.htm
Consulte également l'aide d'Access :f1:
Bonne continuation.
Bonjour et bienvenue sur le Forum,Citation:
Envoyé par habib2006
Comme le souligne FreeAccess la moindre des choses est de saluer. Aussi je t'invite à lire les règles du Forum :fleche: http://club.developpez.com/regles/
et ceci également :fleche: http://www.developpez.net/forums/showthread.php?t=15414.
Ce Forum possède de nombreux outils de recherche avec la :faq: , les :tutoriel: , la fonction :recherch: et l'aide très bien fournie d'access:f1: .
en cliquant sur les images tu trouveras une multitude d'exemples, de codes et des cours complets sur des points précis.
Bonne lecture et à bientôt.
Bonjour à tous !
Ce post tombe a merveille puisque j'ai un petit soucis sur les barre de menu en VBA.
Moi j'ai lu pas mal de tutoriaux ;) notamment celui indiqué par FreeAccess et le cours de Warin http://warin.developpez.com/access/tutorielcontext1/ et en combinant un petit peu tout, j'ai obtenu le code suivant que j'ai mis dans un module nommé : Barre_menu
En fait la plupart des tutoriaux que l'on trouve demande d'utiliser des macros pour la ligne .OnAction, hors je ne veux utiliser que du VBA, d'où le code ci dessus.Code:
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 Function MenuBar() Dim MBar As CommandBar Dim mMenu As CommandBarControl Dim mItem As CommandBarControl Dim NewSubItem As CommandBarControl 'On supprime la barre de menu si elle existe déjà On Error Resume Next CommandBars("Menu_G").Delete On Error GoTo 0 'Installe la barre de menu Set MBar = CommandBars.add(MenuBar:=True, Position:=msoBarTop, Temporary:=True) With MBar .Name = "Menu_G" .Visible = True End With 'Premier Menu Set mMenu = MBar.Controls.add(Type:=msoControlPopup) mMenu.Caption = "&Fichier" Set cBoutonBarre = mMenu.Controls.add(Type:=msoControlButton) ' Règle les propriétés du bouton de commande With cBoutonBarre .Style = msoButtonIconAndCaption .Caption = "Lancer le bloc note" .FaceId = 19 .TooltipText = "Lancer le bloc note" .OnAction = Barre_menu.LancerBlocNote() .Tag = "Lancer le bloc note" End With 'Lie la barre de menu au formulaire Forms!Menu1.ShortcutMenuBar = "Menu_G" End Function Public Function LancerBlocNote() Shell "Notepad.exe" End Function
Lorsque je me mets dans la procédure et que je clique sur F5, j'obtiens bien la nouvelle barre de menu, mais ...tous les boutons s'exécutent en même temps (là pour l'exemple, j'en ai laissé qu'un) et gros soucis également , lorsque je clique sur les boutons ensuite, directement sur la barre, il ne se passe rien, comme si il n'y avait pas d'évènement associé...:cry:
Quelqu'un saurait-il pourquoi ?
De plus, j'ai essayé en fermant et rouvrant mon application, et ma barre de menu a disparue, c'est celle par défaut d'acces qui est revenue... on ne peut pas garder notre barre tout le temps ?
Merci à tous ceux qui pourront m'aider...Et aider ceux qui se demandent aussi comment faire :D
[Edit] La référence Microsoft Office 8.0 Object Library n'a pas voulu se charger, alors j'ai mis la : Microsoft Office 11.0 Object Library ... c'est peut etre important
Bonjour,
Non, c'est normal ;) les librairies que tu charge sont fonction de la version d'Access que tu posséde.......11.0 pour AC2003, 10.0 pour AC2002...etc...Citation:
alors j'ai mis la : Microsoft Office 11.0 Object Library ... c'est peut etre important
Non, si tu regarde bien le code du tuto de Christophe WARIN, tu vois que dans le paragraphe "3.3 Code des boutons" il utilise des fonctions qui sont appelées à partir de la propriété 'Sur action' de ton bouton :roll:Citation:
demande d'utiliser des macros pour la ligne .OnAction,
Comme indiqué, tu créer autant de fonctions que necessaire dans un module.
Sinon ici as tu essayé directement:
Bonne continuation.Code:.OnAction = LancerBlocNote()
Merci bcp concernant les références, je n'en savais rien du tout :)
Ensuite oui , j'ai vu que dans le tuto de christophe warin il utilise des codes VBA, et c'est justement pourquoi j'ai retrouvé le sourire (parce que je déteste les macros ;) ) et que j'ai essayé dans mettre dans le code que j'ai présenté..
Et sinon oui j'ai essayé la ligne :
et ça fait exactement la même chose...c'est à dire rien quand on clique sur le bouton de menu!Code:.OnAction = LancerBlocNote()
Merci FreeAccess
De toute façon je ne vais pas laché ce sujet, je veux absolument que ça marche, alors à très vite ;)
PS : Note importante je pense, dans le tuto de christophe, il fabrique une barre de menu pour un formulaire, alors que mon code fabrique une barre de menu pour l'application en entier.
Bonjour,
Tout d'abord, si tu as créé ton menu par vba uniquement pour pouvoir lancer des fonctions... ce n'était pas utile... !
Tu peux très bien lancer une fonction depuis un menu personnalisé, en mettant sur la ligne Sur action =MaFonction() en lieu et place du nom d'une macro.
Ensuite, pour ce qui est de l'exécution simultanée, difficile de te renseigner, puisque tu n'as laissé qu'un seul bouton dans ton code.
Mais c'est peut-être dû au fait que tu n'as pas bien déclaré la création de tout tes boutons.
Enfin, pour ce qui est de la disparition de ta barre de menu, où places-tu ton code ?
Domi2
Bonjour,
La propriété OnAction est de type String.
Essaies en écrivant :
Cdlt,Code:.OnAction = "=LancerBlocNote()"
Oui je sais que ce n'est pas forcément utile, puisque j'ai déjà un menu personnalisé, mais j'ai envie de faire disparaitre la barre de menu d'access et de mettre la mienne, ce qui personnalise bien plus l'application ;)Citation:
Envoyé par Domi2
Bref, ça fait plus classe 8-)
Et tout mon code se trouve dans un module indépendant.
Merci Domi2
Je ne dirais que quelques mots : ActionAccess ... je t'adore ;) ;) :PCitation:
Envoyé par ActionAccess
ça fonctionne parfaitement, et ça règle tous les problèmes d'un coup :lol:
Grand merci à tous
Bonjour,
J'essaie de faire la même chose, mais en passant des paramètres à l'appel de ma fonction.
J'ai, dans une boucle (pour chaque enregistrement de recMenu) :
Plus loin dans le même module:Code:cbcComBarControl.OnAction = "ExecuterMenu(" & recMenu!ItemNumber & ")"
Le menu est créé correctement, mais lorsque je clique sur un item du menu, ma fonction ExecuterMenu n'est pas appelée. J'obtiens un messageCode:
1
2
3 Public Function ExecuterMenu(Item As Long) '... End Function
Citation:
Envoyé par Access