Comment créer un menu et affecter des macros

  • Initiateur de la discussion dolphin
  • Date de début
D

dolphin

Guest
Bonjour à tous,


J'utilise excel version 98 sur windows 2000. Étant un débutante dans le domaine des macros, je rencontre quelques problèmes.

J'aimerais créer un menu en affectant quelques macros. J'aimerais que le menu puisse contenir trois éléments : définir un client, effacer les données et transformer en contrats.


Je joint à cette demande d'aide un exemple de mon fichier. J'ai insérer un onglet explication pour mieux définir le conception de ce document de de mon problème.


J'aimerais tant pouvoir atteindre le but de terminer ce petit défi que l'on me demande.


J'apprécie énormément l'aide que vous me porterex. Je vous remercie grandement à l'avance.

Merci, un million de fois

dolphin

;) ;) ;)
 

Zon

XLDnaute Impliqué
Salut,

Regardes en piéce jointe tu as juste les constantes à changer.

A+++ [file name=MenuZon.zip size=10039]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/MenuZon.zip[/file]
 

Pièces jointes

  • MenuZon.zip
    9.8 KB · Affichages: 153
  • MenuZon.zip
    9.8 KB · Affichages: 167
  • MenuZon.zip
    9.8 KB · Affichages: 171

dolphin

XLDnaute Occasionnel
Merci beaucoup,

Je ne comprend pas pourquoi je ne vois aucunement de fichier attaché. Donc je ne peux lire les informations que tu m'as fourni. Je crois, mais je ne suis pas sûre, qu'il y a une sécurité dans mon navigateur qui doit surement empêche de visualiser cette donnée.


Je fais des recherches pour corriger cette situation.


Merci encore une fois du travail que tu as fait.

Dolphin :)
 

Zon

XLDnaute Impliqué
Salut,

colles ceci dans un module standard:

Option Explicit
Option Private Module
Const NomMenu = '&MonApplication' 'Le & permet de souligner la lettre située derriére ex:M
Const Menu1$ = 'M&onMenu1'
Const Menu2$ = '&A propos'
Const Menu3$ = '&Quitter '

Sub MenuC()
 
Dim Menu As CommandBarPopup, MenuItem As CommandBarControl
 
Dim TNom, TFaceId, I As Byte
 
On Error Resume Next
    MenuDestruction
    TNom = Array(Menu1, Menu2, Menu3)
'à adapter
    TFaceId = Array(23, 49, 330)
' à adpater Les icones
   
   
Set Menu = CommandBars(1).Controls.Add(10, , , , True)
    Menu.Caption = NomMenu
   
For I = LBound(TNom) To UBound(TNom)
     
Set MenuItem = Menu.Controls.Add(1)
     
With MenuItem
        .Caption = TNom(I)
        .FaceId = TFaceId(I)
        .OnAction = 'Macro' & I + 1
     
End With
   
Next I
End Sub
'Les macros qu'on associe au différents boutons,Ici 3, la 4 eme s'appellera Macro4 .....

Sub Macro1()
  MsgBox 'Ce n
'est qu'une démo'
End Sub

Sub Macro2()
  AideUSF.Show
End Sub

Sub Macro3()
  MenuDestruction
  ThisWorkbook.Close
End Sub

Sub MenuDestruction()
   
On Error Resume Next
    CommandBars(1).Controls(NomMenu).Delete
End Sub
 

Pour créer le menu il faut lancer menuc dans le workbook_open, n'oblies pas de le supprimer dans le before_close avec menudestruction.

A+++
 

Celeda

XLDnaute Barbatruc
Bonjour,

Voici les codes de Zon, si cela peut t'aider :


à placer dans ThisWorbook

Option Explicit

Private Sub Workbook_BeforeClose(Cancel As Boolean)
MenuDestruction
End Sub

Private Sub Workbook_Open()
MenuC
End Sub

Dans un Module (nommé par Zon, MenuZon)

Option Explicit
Option Private Module
Const NomMenu = '&MonApplication' 'Le & permet de souligner la lettre située derriére ex:M
Const Menu1$ = 'M&onMenu1'
Const Menu2$ = '&A propos'
Const Menu3$ = '&Quitter '
Sub MenuC()
Dim Menu As CommandBarPopup, MenuItem As CommandBarControl
Dim TNom, TFaceId, I As Byte
On Error Resume Next
MenuDestruction
TNom = Array(Menu1, Menu2, Menu3) 'à adapter
TFaceId = Array(23, 49, 330) ' à adpater Les icones

Set Menu = CommandBars(1).Controls.Add(10, , , , True)
Menu.Caption = NomMenu
For I = LBound(TNom) To UBound(TNom)
Set MenuItem = Menu.Controls.Add(1)
With MenuItem
.Caption = TNom(I)
.FaceId = TFaceId(I)
.OnAction = 'Macro' & I + 1
End With
Next I
End Sub
'Les macros qu'on associe au différents boutons,Ici 3 la 4 eme s'appellera Macro4 .....

Sub Macro1()
MsgBox 'Ce n'est qu'une démo'
End Sub

Sub Macro2()
AideUSF.Show
End Sub

Sub Macro3()
MenuDestruction
ThisWorkbook.Close
End Sub

Sub MenuDestruction()
On Error Resume Next
CommandBars(1).Controls(NomMenu).Delete
End Sub


Un Usf fait pour l'occasion un code à placer :

Option Explicit

Private Sub UserForm_Initialize()
Me.Caption = 'Démo XLD'
End Sub

Ce menu avait déjà été fait pour :

Lien supprimé

Récupérer FaceID dans la zone de téléchargement


Et si j'ai rien oublié,, tu fais un copier coller de tout cela et cela doit fonctionner, un petit menu nommé Monapplication apparaîtra en haut de ta barre de menu (Zon n'a pas voulu nous mettre sa photo!!!! :) :) :) :) ).

Si problème, on t'envoie le menu!!! par email à ta demande.


Celeda ;)
 

Discussions similaires