Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

MODIFIER VOTRE BARRE DE MENU EXCEL


Information sur la source

Description

Ici, ma deuxieme source en VBA.
Il vous permet d'ajouter un nouveau menu à votre barre de menu excel (surement apllicable à Access et toute appli microsoft) avec des sous menus ... qui sont directement associés à vos programme.
Pas de Zip ... juste du code ... copier coller.
 

Source

  • 'dans ThisWoorkBook ajouter ...
  • Private Sub Workbook_Open()
  • Créer_Menu
  • End Sub
  • Private Sub Workbook_BeforeClose(Cancel As Boolean)
  • Effacer_Menu
  • End Sub
  • 'dans un nouveau module ajouter ...
  • Function Créer_Menu()
  • For Z = 1 To CommandBars(1).Controls.Count
  • If CommandBars(1).Controls(Z).Caption = "Mon Menu Perso" Then Exit Function
  • Next
  • With CommandBars(1).Controls.Add(msoControlPopup, before:=10)
  • .Caption = "Mon Menu Perso"
  • With .Controls.Add(msoControlPopup)
  • .Caption = "Menu 1"
  • With .Controls.Add(msoControlButton)
  • .Caption = "Sous Menu 1.1"
  • .OnAction = ""'entre les guillemets : nom de votre procédure
  • End With
  • With .Controls.Add(msoControlButton)
  • .Caption = "Sous menu 2.1"
  • .OnAction = ""'entre les guillemets : nom de votre procédure
  • End With
  • With .Controls.Add(msoControlButton)
  • .Caption = "Sous menu 3.1"
  • .OnAction = ""'entre les guillemets : nom de votre procédure
  • End With
  • End With
  • '2e Bouton Saisie
  • With .Controls.Add(msoControlPopup)
  • .Caption = "Menu 2"
  • With .Controls.Add(msoControlButton)
  • .Caption = "Sous menu 2.1"
  • .OnAction = ""'entre les guillemets : nom de votre procédure
  • End With
  • With .Controls.Add(msoControlButton)
  • .Caption = "Sous menu 2.2"
  • .OnAction = ""'entre les guillemets : nom de votre procédure
  • End With
  • End With
  • '3e Boutton
  • With .Controls.Add(msoControlButton)
  • .Caption = "Menu 3"
  • .OnAction = ""'entre les guillemets : nom de votre procédure
  • End With
  • End With
  • MsgBox "Veuillez lancer les programmes dans la barre de Menu.", vbInformation, "Votre Menu Perso"
  • End Function
  • '******************************************************************
  • Function Effacer_Menu()
  • Next_Z:
  • For Z = 1 To CommandBars(1).Controls.Count
  • If CommandBars(1).Controls(Z).Caption = "Mon Menu Perso" Then
  • CommandBars(1).Controls("Mon Menu Perso").Delete
  • GoTo Next_Z
  • End If
  • Next
  • '****************************************************************
  • End Function
'dans ThisWoorkBook ajouter ...
Private Sub Workbook_Open()
Créer_Menu
End Sub


Private Sub Workbook_BeforeClose(Cancel As Boolean)
Effacer_Menu
End Sub

'dans un nouveau module ajouter ...
Function Créer_Menu()

For Z = 1 To CommandBars(1).Controls.Count
If CommandBars(1).Controls(Z).Caption = "Mon Menu Perso" Then Exit Function
Next

With CommandBars(1).Controls.Add(msoControlPopup, before:=10)
    .Caption = "Mon Menu Perso"

    With .Controls.Add(msoControlPopup)
        .Caption = "Menu 1"
        With .Controls.Add(msoControlButton)
            .Caption = "Sous Menu 1.1"
            .OnAction = ""'entre les guillemets : nom de votre procédure
        End With
        With .Controls.Add(msoControlButton)
            .Caption = "Sous menu 2.1"
            .OnAction = ""'entre les guillemets : nom de votre procédure
        End With
        With .Controls.Add(msoControlButton)
            .Caption = "Sous menu 3.1"
            .OnAction = ""'entre les guillemets : nom de votre procédure
        End With
    End With
    '2e Bouton Saisie 
    With .Controls.Add(msoControlPopup)
        .Caption = "Menu 2"
        With .Controls.Add(msoControlButton)
            .Caption = "Sous menu 2.1"
            .OnAction = ""'entre les guillemets : nom de votre procédure
        End With
        With .Controls.Add(msoControlButton)
            .Caption = "Sous menu 2.2"
            .OnAction = ""'entre les guillemets : nom de votre procédure
        End With
    End With
    '3e Boutton 
    With .Controls.Add(msoControlButton)
        .Caption = "Menu 3"
        .OnAction = ""'entre les guillemets : nom de votre procédure
    End With
        
End With
MsgBox "Veuillez lancer les programmes dans la barre de Menu.", vbInformation, "Votre Menu Perso"
End Function

'******************************************************************
Function Effacer_Menu()

Next_Z:
For Z = 1 To CommandBars(1).Controls.Count
If CommandBars(1).Controls(Z).Caption = "Mon Menu Perso" Then
    CommandBars(1).Controls("Mon Menu Perso").Delete
    GoTo Next_Z
End If
Next

'****************************************************************



End Function

Conclusion

Voila ... c'est pas grand chose ... mais cela pourra servir à quelques personnes ... enfin j'èspere (lol)

Je n'ai pas essayer, mais cela doit etre possible sous toutes les applis microsoft


Bonne Prog
 

Commentaires et avis

signaler à un administrateur
Commentaire de cs_66 le 09/02/2006 12:19:34

Merci Chapata - Je me suis inspiré de tes lignes pour simplifier mon code et ça marche très bien (sous Excel) !!!
Je n'ai pas l'habitude d'utiliser "FUNCTION - END FUNCTION". Comme je vois que tu t'en sers, pourrais-tu me renseigner succintement sur son avantage, par rapport à "SUB - END SUB".
Merci encore et à +
CS

signaler à un administrateur
Commentaire de jpsonza le 23/03/2006 10:15:34

Ta question est un peu biz, mais suffit d'aller dans Insertion/Procedure de ton code pour voir les choix possible

Sub
bla bla bla
End Sub

Function
bla bla bla
End function

signaler à un administrateur
Commentaire de GMY le 19/04/2006 14:09:04

Function et Sub ont des usages différents.

Sub est une procédure, elle exécute du code et agit sur les variables en qui sont en entrée/sortie

Function est une fonction, c'est une procédure qui peut renvoyer une valeur, la syntawe est :
Function MaFonction(MesParametres) as TypeRenvoyé
...code
MaFonction = UneValeur 'Du même type que le type renvoyé
End Function

J'utilise souvent les fonctions pour retourner un booléen si la fonction c'est bien ou mal passé, ou alors pour retourner une  valeur calculée à partir des paramètres.

signaler à un administrateur
Commentaire de cs_66 le 20/04/2006 09:09:49

C'est ce que je voulais savoir - merci pour l'explication et bonne continuation à tous.
Salut.

signaler à un administrateur
Commentaire de Djibril2 le 23/05/2006 10:52:21

C'est très clair, Merci !

Est-il possible d'ajouter des Info-Bulles ? .ControlTipText
ou encore un message dans la barre de tache ? .StatusBar

Merci
Greg

signaler à un administrateur
Commentaire de chapata le 23/05/2006 11:09:56

Salut ...
des info bulles dans la barre de menu... je ne crois pas . Mais cela ne coute rien d'essayer

Pour ce qui est du message dans la barre du stattu ... tout est possible !
tu peux la modifier à chaque fois que tu effectue une action avec une macro.
je n'ai plus le code sous les yeux, mais il me semble que c'est un truc dans ce genre :


Application.StatusBar = "Mon nouveau Statu ... Coucou ..." 'Changer le statu
Application.StatusBar = False ' réinitialiser le statu
Application.DisplayStatusBar = False 'Cache la barre de statu
Application.DisplayStatusBar = True 'affiche la barre de statu

Chapat'

signaler à un administrateur
Commentaire de supertet le 04/12/2008 12:26:57

Bonjour,

Super et cela fonctionne bien!

Mais n'ayant que peut l'habitude en vba, comment tu associe une action  (exemple colorier une cellule) suite au clic sur par exempel : Sous menu 1.1??

D'avance merci bàt

signaler à un administrateur
Commentaire de chapata le 04/12/2008 21:50:42

Salut,
tu crée une fonction
Function ColoriseParExemple()
ActiveCell.Interior.ColorIndex = 9 ' par exemple
End Function

Et tu applique la fonction, a OnAction du sous menu

A Plus

signaler à un administrateur
Commentaire de supertet le 05/12/2008 09:56:05

Ok, et merci!

Vive les forums!!

Bonne journée!

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

menu et barre outil sous excel [ par jraynald ] J?ai créé une petite application VBA sous excel, mais comment supprimer tous les menu et barre d?outils pour les remplacer par la suite par les mienne enleve toutes les barres d'outil [ par oliv76n ] Bonjours,Je viens de fini mon projet et je souhaiterai y enveler toutes les barres d'outils, ainsi que 'la barre de menu'.J'ai déjà fais dans 'Personn Barre de menu "comme dans Excel" [ par Duke Nukem ] Salut ,Est il possible de créer dans un userform des boutons qui soient completement "plats" et qui réagissent lorsque la souris passe dessus ( ils pa excel rubrique du menu disparu [ par jraynald ] Voila je me retrouve avec un excel dont la barre de menu c'est trouvé diminué de plusieurs catégorie (fichier, donnée et autre), comment restaurer la Supprimer une barre d'outil par le code [ par florantanplan ] Ce bout de code est sensé supprimer une barre dans excel 2000: Set objXL = New Excel.Application objXL.DisplayAlerts = False objXL.Visible = Excel sous Citrix [ par Viviane ] Bonjour !J'ai une aplli VB qui ouvre des feuilles xls. Ces feuilles contiennent une barre de menu qui activent des icones.Ex : Barre de menu : Fl Iconbes personnalisées dans une barre d'outil sous excel [ par Chouchensb ] Bonjour à tous,Alors voilà, j'ai déjà posé plusieurs fois ma question mais je n'ai jamais obtenu de réponse (sniffff ).D Divers Pb Excel VBA [ par calice23 ] Bonjour, j'ai différents problemes à résoudre.tout d'abord, je voudrais avoir une ligne de code qui permet d'enlever les messages de confirmations qu' désactiverla barre de menu standard dans excel [ par Daydayer ] je voudrais rendre inactive  la barre de menu standard des fichiers excel. En effet, je vais créer une barre de menu spéciali Personnalisation barre d'outil sous Excel [ par btou81 ] Bonjour,J'ai créé et attribué une barre d'outils spécifique pour un tableau EXCEL.Cette barre d'outil s'ouvre exclusivem


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,983 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.