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 :

[vba-E] barre d'outil (questions de débutant)


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 48
    Points : 32
    Points
    32
    Par défaut [vba-E] barre d'outil (questions de débutant)
    Bonjour,

    Je cherche à creer une barre d'outil dans mon classeur excel. Dans cette barre d'outil; je souhaite mettre un bouton qui permet d'exécuter une macro de ce même classeur.

    Ne sachant pas comment faire, j'ai cherché dans la faq mais je n'ai trouvé aucune indication, de même que sur le forum (sauf une vague référence à une suppression de cette barre et une génération de la barre à chaque lancement du fichier pour que ça marche correctement... bref, ça me fait un peu peur ).

    j'ai fini par trouver ce morceau de code sur google et j'aimerais avoir un peu d'aide parce que je comprends pas tout :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub NewBar()
    Application.CommandBars.Add(Name:="BarPerso").Visible = True
    Application.CommandBars("BarPerso").Controls.Add Type:=msoControlButton, ID _
    :=19, Before:=1
    Application.CommandBars("BarPerso").Controls.Add Type:=msoControlButton, ID _
    :=22, Before:=2
    With CommandBars("BarPerso")
    .Left = 620
    .Top = 450
    .Width = 120
    End With
    End Sub
    Si je comprend bien, on créé une barre "BarPerso" qui est placée aux coordonnées indiquées en dessous. Mais mon problème se situe sur le :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Application.CommandBars("BarPerso").Controls.Add Type:=msoControlButton, ID _
    :=22, Before:=2
    est-ce que c'est pour ajouter un bouton ? et si non, comment faut il faire ?

    Merci,

    Aethis

  2. #2
    Membre régulier Avatar de doringen
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 73
    Points : 87
    Points
    87
    Par défaut
    Tout à fait, c´est bien la portion de code qui ajoute un bouton dans la barre

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 48
    Points : 32
    Points
    32
    Par défaut
    D'accord, merci.

    mais comment fonctionne t'il ?

    je suppose que le "msoControlButton" est le type de bouton, mais à quoi correspond l'ID ? je suppose aussi que le before doit être la position dans la barre, non ?

    Ensuite comment affecter ma macro à ce bouton ?

    merci de votre aide =)

    Aethis

  4. #4
    Membre régulier Avatar de doringen
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 73
    Points : 87
    Points
    87
    Par défaut
    ID est par défaut la fonction associée au bouton (par exemple, dans ton code, le bouton avec ID= 19 est l´instruction "Copier", l´autre "Coller").
    Par contre, pour affecter une macro "home-made" à un bouton, j´ai un trou...

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 48
    Points : 32
    Points
    32
    Par défaut
    Donc, j'ai trouvé la solution sur un autre forum :

    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
    Sub CréeBarreOutils()
     
    On Error Resume Next
    CommandBars("MaBarre").Delete
    On Error GoTo 0
     
    With CommandBars.Add(Name:="MaBarre")
     
    With .Controls.Add(Type:=msoControlButton)
    .OnAction = "MaMacro" ' macro à lancer
    .FaceId = 586 ' modèle de bouton
    .TooltipText = "MonCommentaire" ' info bulle
    End With
    .Visible = True
    End With
    et le tout est à lancer au lancement du fichier.

    Une dernière question : Est-ce que vous connaissez un site sur lequel je puisse trouver la liste des icones avec leurs ID correspondants ?

    Edit : c'est bon, j'ai trouvé : http://j-walk.com/ss/excel/tips/tip67.htm

    merci de votre aide =)

    Aethis

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

Discussions similaires

  1. [XL-2003] Recherche nom VBA de barres d'outils
    Par brunop3165 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/11/2009, 16h28
  2. [VBA-E] Sécurisé une barre d'outil
    Par mulanzia2003 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/10/2005, 07h56
  3. [VBA WORD] barre d'outil perso
    Par meufeu dans le forum VBA Word
    Réponses: 9
    Dernier message: 21/09/2005, 21h46
  4. [VBA-E] Barre d'outils et menu déroulants
    Par Tcmat dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 17/08/2004, 21h51
  5. [VBA-E] Barre d'outil créée automatiquement
    Par gjeff dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/12/2002, 16h45

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