begin process at 2008 07 04 00:58:33
1 204 456 membres
3 nouveaux aujourd'hui
14 114 membres club

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
  • 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'

Ajouter un commentaire

Pub



Appels d'offres

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

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

Boutique

Boutique de goodies CodeS-SourceS