IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

menu personnalisé et macro-complémentaire


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de liazidf
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations forums :
    Inscription : Mai 2002
    Messages : 281
    Par défaut menu personnalisé et macro-complémentaire
    [excel2003]
    salut,
    j'ai crée une fonction, que j'ai stockée sous forme xla, je voudrai créer un bouton dans la barre, dynamiquement, i.e dans la foction elle-même.
    merci

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Peux-tu nous en dire plus ? Là, je peux supposer plusieurs choses :
    Créer un bouton dans "une" barre (laquelle ?) qui lance ta macro complémentaire...
    Lancer ta macro qui crée la barre à l'ouverture du fichier avec un bouton qui fait des choses...
    ... ou autre chose...
    Tu peux préciser ?
    A+

  3. #3
    Expert confirmé
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Par défaut
    Hello,

    j'utilise et j'ai distribué un XLA qui génére son propre menu :
    sur le code de ThisWorkbook de ton xla :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
        DelMenu "MonMenu"
        Application.Speech.Speak "Good bye ! See you soon !"
    End Sub
     
    Private Sub Workbook_Open()
    ArrText = Array( ... )
    ArrCode = Array( ... )
    ArrIcon = Array(7707, 7707 ...)
    ' affichage du Menu
    AddMenu "MonMenu", _
            ArrText, _
            ArrCode, _
            ArrIcon
    End Sub
    et j'ai mis dans un module de code de mon XLA les fonctions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    44
    45
    46
    47
    Sub AddMenu(ByVal MenuName As String, _
                ByVal tItems As Variant, _
                ByVal tLinks As Variant, _
                ByVal tTTText As Variant)
     
        Set myMenu = CommandBars.ActiveMenuBar
        Set newMenu = myMenu.Controls.Add(Type:=msoControlPopup, temporary:=True)
        newMenu.Caption = MenuName
        For Each Value In tItems
            If IsArray(Value) Then
                'cas d'un sous menu
                Set subMenu = newMenu.Controls.Add(Type:=msoControlPopup, temporary:=True)
                subMenu.Caption = Value(0)
                For j = 1 To UBound(Value)
                    Set ctl = subMenu.Controls.Add(Type:=msoControlButton)
                    ctl.Caption = Value(j)
                    ctl.Style = msoButtonIconAndCaption
                    ctl.OnAction = tLinks(i)(j)
                    ctl.FaceId = CLng(tTTText(i)(j))
                Next j
            Else
                'cas d'un menu
                Set ctl = newMenu.Controls.Add(Type:=msoControlButton)
                If Left(Value, 1) = "-" Then
                    ctl.BeginGroup = True
                    ctl.Caption = Mid(Value, 2)
                Else
                    ctl.Caption = Value
                End If
                ctl.Style = msoButtonIconAndCaption
                ctl.OnAction = tLinks(i)
                ctl.FaceId = CLng(tTTText(i))
            End If
            i = i + 1
        Next Value
     
     
    End Sub
     
    Sub DelMenu(ByVal MenuName As String)
     
        On Error Resume Next
     
        Set myMenu = CommandBars.ActiveMenuBar
        myMenu.Controls(MenuName).Delete
     
    End Sub
    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    addmenu "Developpez.com", _
            array("Fichier","Ouvrir","-Quitter"), _
            array("dummymacro1", "dummymacro2", "dummymacro3"), _
            array(1957, 107, 5756)
     
    delmenu "Developpez.com"

  4. #4
    Membre éclairé Avatar de liazidf
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations forums :
    Inscription : Mai 2002
    Messages : 281
    Par défaut macro complémentaire
    Merci de vos réponse, mais en fait ma fonction permet de calculer la retenue irg sur salaire, à partir de n'importe quels classeur, je voudrais simplement simplifier l'utilisation de cette fonction en rajoutant un bouton personnel dans la barre d'outils à partir de la fonction elle même, j'espère être clair dans mes explication.

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    C'est ce qu'il me semblait. Alors regarde , tu as le code à utiliser dans ton xla.
    A+

  6. #6
    Membre éclairé Avatar de liazidf
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations forums :
    Inscription : Mai 2002
    Messages : 281
    Par défaut
    Citation Envoyé par ouskel'n'or Voir le message
    C'est ce qu'il me semblait. Alors regarde , tu as le code à utiliser dans ton xla.
    A+
    Merci pour le lien, ça marche

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. ajout macro complémentaire dans menu
    Par spidtrip dans le forum VBA PowerPoint
    Réponses: 0
    Dernier message: 06/07/2010, 16h12
  2. Menu dans une macro complémentaire
    Par Daejung dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 06/10/2008, 23h17
  3. Menu contextuel et macro Complémentaire
    Par Balbo dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/07/2008, 15h31
  4. Réponses: 9
    Dernier message: 30/05/2006, 20h38
  5. Réponses: 9
    Dernier message: 14/10/2003, 16h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo