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 :

[E-03] Ajouter CommandBar


Sujet :

Macros et VBA Excel

  1. #1
    Membre chevronné Avatar de drakkar_agfa
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 618
    Par défaut [E-03] Ajouter CommandBar
    Bonjour,

    Je me suis fait une macro qui ajoute une barre de menu (avec deux boutons à l'intérieur). Tout me semble correct mais j'ai une erreur
    Argument ou appel de procédure incorrect
    sur cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set customBar = Application.CommandBars.Add("Rapports", msoBarPopup, , True)
    J'ai beau regardé dans l'aide mais tout me semble correct avec le .Add

    Voici mon code complet
    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
    Sub AjoutMenu()
        Dim customBar As CommandBar
        Dim newButton As CommandBarButton
        Set customBar = Application.CommandBars.Add("Rapports", msoBarPopup, , True)
        customBar.Visible = True
     
        Set newButton = customBar.Controls.Add(msoControlButton, , , , True)
        With newButton
        .Caption = "Menu des rapports"
        'Attribue une macro à la barre de menu.
        .OnAction = "OuvrirMenu"
        End With
     
        Set newButton = customBar.Controls.Add(msoControlButton, , , , True)
        With newButton
        .Caption = "Visualiser liste"
        'Attribue une macro à la barre de menu.
        .OnAction = "VisualiserListe"
        End With
     
    End Sub
    Et si je comprends bien, en donnant True au paramètre Temporary, je n'ai pas besoin de faire une macro qui supprime mes menus avec un beforeclose?

    Merci de votre précieuse aide!

  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
    Remplace le premier paramètre par sa valeur et mets une valeur au second
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set customBar = Application.CommandBars.Add("Rapports", 1, 0, True)
    si je comprends bien, en donnant True au paramètre Temporary...
    Tu comprends bien
    Bonne journée

    PS - Une explication ? Selon les versions de VBA il est arrivé à certains paramètres de changer de pseudo mais pas de valeur

  3. #3
    Membre chevronné Avatar de drakkar_agfa
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 618
    Par défaut
    Ok merci. Ça marche parfaitement!

    Bonne fin de journée!

  4. #4
    Membre chevronné Avatar de drakkar_agfa
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 618
    Par défaut
    Rebonjour,

    C'est dommage de ressortir un vieux topic mais,
    j'ai testé la macro à la maison avec la ligne de ouskel'n'or et cela fonctionnait. Rendu ici, au bureau, j'ai toujours la même arreur même avec la ligne d'ouskel'n'or
    Argument ou appel de procédure incorrect
    J'ai bien la version 2003 au bureau.

    Auriez-vous une idée?

    Merci!

  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
    As-tu testé sur un classeur tout neuf ?
    As-tu déclaré customBar as commandbar ?

  6. #6
    Membre chevronné Avatar de drakkar_agfa
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 618
    Par défaut
    J'ai testé cette macro dans le classeur en cours et je l'ai aussi testé dans un classeur neuf.
    Voici le code complet :
    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
    Sub AjoutMenu()
        Dim customBar As CommandBar
        Dim newButton As CommandBarButton
        Set customBar = Application.CommandBars.Add("Rapports", 1, 0, True)
        customBar.Visible = True
     
        Set newButton = customBar.Controls.Add(msoControlButton, , , , True)
        With newButton
        .Caption = "Menu des rapports"
        'Attribue une macro à la barre de menu.
        .OnAction = "OuvrirMenu"
        End With
     
        Set newButton = customBar.Controls.Add(msoControlButton, , , , True)
        With newButton
        .Caption = "Visualiser liste"
        'Attribue une macro à la barre de menu.
        .OnAction = "VisualiserListe"
        End With
     
    End Sub

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Juste un test (sans garantie)

    Au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim customBar As CommandBar
    essayes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim customBar As Office.CommandBar
    Philippe

  8. #8
    Membre chevronné Avatar de drakkar_agfa
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 618
    Par défaut
    Merci de l'essais
    Mais j'ai toujours l'erreur!

  9. #9
    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
    Oui, moi aussi j'ai l'erreur quand la barre d'outils existe déjà
    Teste ça, ça devrait aller
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub AjoutMenu()
        Dim Unebarre As CommandBar, ok As Boolean
        ok = True
        For Each Unebarre In Application.CommandBars
            ok = unebarre.Name = "Rapports"
            If ok Then
                Unebarre.Delete
                Exit For
            End If
        Next
        Set unebarre = Application.CommandBars.Add("Rapports", 1, 0, True)
        UneBarre.Visible = True
    End Sub
    Bonne soirée

  10. #10
    Membre chevronné Avatar de drakkar_agfa
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 618
    Par défaut
    Merci ça fonctionne!

    Mais, avec ce code, mon bouton s'ajoute bien mais je n'ai pas rien d'écrit. Il est présent avec aucune écriture dedans. Quand je passe la souris dessus, un carré apparait et affiche une bulle "Menu des rapports"

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        Set newButton = customBar.Controls.Add(msoControlButton, , , , True)
        With newButton
        .Caption = "Menu des rapports"
        'Attribue une macro à la barre de menu.
        .OnAction = "OuvrirMenu"
        End With
    D'après moi, pour le titre du bouton c'était .Caption, non?

    Encore merci!

  11. #11
    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
    Si tu ajoutes un bouton tout nu, tu obtiens un bouton tout nu. Le mieux serait que tu lises le tuto réalisé par fring sur les barres d'outils personnalisées.
    Bonne lecture

  12. #12
    Membre chevronné Avatar de drakkar_agfa
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 618
    Par défaut
    Merci pour le lien!

    Très bien, j'ai de super beaux boutons maintenant!!!

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 19/03/2015, 18h31
  2. [système] Comment ajouter un item dans le context menu de Windows ?
    Par ddmicrolog dans le forum API, COM et SDKs
    Réponses: 8
    Dernier message: 29/06/2005, 17h03
  3. [VB6] [ADO] Pb ajout enregistrement table liée
    Par fikou dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 01/10/2002, 11h49
  4. Connaitre l'unitée à ajouter dans USES
    Par DelphiCool dans le forum Langage
    Réponses: 7
    Dernier message: 01/08/2002, 13h48
  5. Ajouter une aide
    Par Mailgifson dans le forum C++Builder
    Réponses: 5
    Dernier message: 12/06/2002, 13h32

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