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 :

Barre d'outils personnalisée


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Août 2011
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 94
    Par défaut Barre d'outils personnalisée
    Re bonjour,

    Je reviens vers le forum aprés avoir résolu d'autres problèmes de lignes de commandes. Je pense avoir terminer avec cela.
    Je me retrouve maintenant avec des boutons que j'ai crée dans ma barre d'outils personnalisée que j'ai crée dans l'onglet "complément".
    Cependant on retrouve dans cette barre une 1iere ligne des boutons appartenant à l'ancienne macro complémentaire d'excel 2003 dont je ne me sers plus.

    1) je souhaiterais faire disparaitre ces boutons
    2) je souhaiterais qu'un commentaire s'affiche en glissant sur les nouveaux boutons (pour que l'utilisateur) est connaissance de la macro)
    Et évidemment, le nec plus ultra serait de pouvoir créer un nouvel onglet"perso" qui s'ouvrirait à l'ouverture du classeur, mais cela ne doit pas être simple je suppose. Voir le vidage d'écran dans le fichier joint

    D'avance merci pour votre aide

    Cordialement
    Fichiers attachés Fichiers attachés

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 141
    Par défaut Info-bulle d'un bouton dune barre d'outil en Excel VBA
    Citation Envoyé par CLAUDE19 Voir le message
    Je me retrouve maintenant avec des boutons que j'ai créé dans ma barre d'outils personnalisée que j'ai créée dans l'onglet "complément".
    Comment cette barre d'outil personnalisée cumulant des boutons d'une ancienne macro complémentaire d'Excel 2003 et des nouveaux boutons d'Excel 2007 a-t-elle été créée ?
    Manuellement ou dans une macro VBA ?

    • Si c'est manuellement à la souris, qu'est-ce qui empêche de faire disparaître les boutons que l'on ne veut plus ?
    • Si c'est par une macro, fournir le code VBA entre les balises [CODE] et [/CODE].


    Citation Envoyé par CLAUDE19 Voir le message
    2) je souhaiterais qu'un commentaire s'affiche en glissant sur les nouveaux boutons (pour que l'utilisateur) est connaissance de la macro)
    S'il s'agit d'info-bulle, c'est la propriété Caption de chaque bouton qui est renseignée à la création de la barre d'outil.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub ToolbarCreate()
    ' ... extrait de la création d'une barre d'outil en Excel VBA
            With cmdBtn ' Initialisation commune de chaque bouton
                .FaceId = arrBtn(indBtn)(indBtnIcon) ' Icon du bouton
                .Style = msoButtonIconAndCaption
                .Caption = arrBtn(indBtn)(indBtnCaption) ' Info-bulle
                .OnAction = "Btn" + arrBtn(indBtn)(indBtnAction) + "Click"
    Pour Le code VBA complet, consulter 1. Initialisation d'une barre d'outils avec Excel VBA.
    ___________

    Si la discussion est résolue, vous pouvez cliquer sur le bouton

    En bas de ce message s'il vous a apporté des éléments de réponse pertinents, pensez également à voter en cliquant sur le bouton vert ci-dessous.

  3. #3
    Membre confirmé
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Août 2011
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 94
    Par défaut Barre d'outils personnalisée
    Bonjour et merci pour votre réponse,

    concernant la barre d'outils perso dans l'onglet complément, j'utilise le code ci-dessous, je ne suis pas arrivé à utiliser la propriété caption

    ________________________________________________________
    'macro automatique à l'ouverture du fichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     Private Sub Workbook_open()
        Run ("macro_automatique_ouverture_fichier_principal")
        Dim CmdBar As CommandBar
        Dim Bouton As CommandBarButton
    'Création de la barre d'outils nommée 'MaBarrePerso'
    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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    Set CmdBar = Application.CommandBars _
            .Add(Name:="OUTILS ANALYSE DES RISQUES", Position:=msoBarTop, Temporary:=True)
     
        'Ajout de boutons dans la barre d'outils
        Set Bouton = CmdBar.Controls.Add(Type:=msoControlButton)
        With Bouton
            'Définit "l'image" qui va s'afficher sur le bouton
            .FaceId = 3
            'Définit quelle macro est associée au bouton.
            'Cette macro sera lancée à chaque fois que vous cliquez sur le bouton.
            .OnAction = "z_enregistrer_dans_histo"
        End With
     
        Set Bouton = CmdBar.Controls.Add(Type:=msoControlButton)
        With Bouton
            .FaceId = 170
            .OnAction = "basculement_travail_historique"
        End With
     
        Set Bouton = CmdBar.Controls.Add(Type:=msoControlButton)
        With Bouton
             .FaceId = 594
            .OnAction = "MonterLigne"
        End With
     
        Set Bouton = CmdBar.Controls.Add(Type:=msoControlButton)
        With Bouton
             .FaceId = 597
            .OnAction = "DescendreLigne"
        End With
     
        Set Bouton = CmdBar.Controls.Add(Type:=msoControlButton)
        With Bouton
             .FaceId = 2060
            .OnAction = "EffacerLigne"
        End With
     
            Set Bouton = CmdBar.Controls.Add(Type:=msoControlButton)
        With Bouton
             .FaceId = 1671
            .OnAction = "Effacerensembledeslignes"
        End With
     
            Set Bouton = CmdBar.Controls.Add(Type:=msoControlButton)
        With Bouton
             .FaceId = 3078
            .OnAction = "Rétablir"
        End With
     
        Set Bouton = CmdBar.Controls.Add(Type:=msoControlButton)
        With Bouton
             .FaceId = 3033
            .OnAction = "remiseaniveau"
        End With
        CmdBar.Visible = True
     
     
    End Sub
    ____________________________________________________

    La barre d'ouyils perso a été crée dans un 1ier temps avec la macro complémentaire xla. En suite j'ai supprimé cette macro complémentaire et repris les macros qu'elle contenait pour crée d'autres boutons (voir lignes ci-dessus), et donc je n'arrive pas à supprimer l'image des boutons de mon ancienne macro complémentaire

    J'espère me bien faire comprendre

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour Claude19,
    Salut MattChess

    1) Pour supprimer une barre perso, il suffit de faire un clique droit sur les barres d'outils -> Personnaliser
    Tu sélectionnes la barre à supprimer -> Supprimer
    Nom : ScreenShot060.jpg
Affichages : 447
Taille : 30,5 Ko

    2) Pour le commentaire, comme te l'as dis si bien MattChess, il suffit d'uiliser ".Caption"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
      'Ajout de boutons dans la barre d'outils
      Set Bouton = CmdBar.Controls.Add(Type:=msoControlButton)
      With Bouton
        'Définit "l'image" qui va s'afficher sur le bouton
        .FaceId = 3
        'Définit quelle macro est associée au bouton.
        'Cette macro sera lancée à chaque fois que vous cliquez sur le bouton.
        .OnAction = "z_enregistrer_dans_histo"
        .Caption = "z_enregistrer_dans_histo"
      End With
    Ca marche très bien chez moi sur Excel 2003, alos pourquoi pas chez toi !?

    3) Que veux tu faire exactement avec l'onglet 'Perso'
    créer un nouvel onglet"perso" qui s'ouvrirait à l'ouverture du classeur
    Heuuu pour moi ce n'est pas français !?

    A+

  5. #5
    Membre confirmé
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Août 2011
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 94
    Par défaut
    Bonjour,

    Je confirme, cela ne marche pas sur ma barre perso sur excel 2007 aucun commentaire ne s'affiche.

    Concernant la création du nouvel onglet, c'est pour y insérer ma barre d'outils personnalisée à ce classeur

    Ouups!!!

    Autant pour moi .Caption fonctionne, en bidoullant j'avais crée moi même une erreur

    Excuse moi

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 141
    Par défaut
    Dans l'éditeur du forum, merci d'éditer votre code commençant par votre commentaire 'macro automatique à l'ouverture du fichier

    Cliquez sur


    • Dans le forum (pas dans le VBE d'Excel), insérer avant votre 1ere ligne de code le mot-clé CODE entre crochets sans l'effet italique sans couleur et sans les deux points. Exemple : [CODE]
    • Ajouter après votre dernière ligne : [/CODE]


    Autrement dit encadrer votre code entre les balises [CODE] et [/CODE]

    Voir en note de bas de votre message édité par un modérateur : "Motif: Ajout de balises de code."
    1. Sélectionner votre code à la souris dans votre message du forum.
    2. Cliquez sur le bouton "#" de la barre d'outil de l'éditeur de message du forum afin d'ajouter automatiquement ces deux balises [CODE] et [/CODE] pour encadrer votre code.

    Il reste le début de votre code qui n'est toujours pas entre les balises [CODE] et [/CODE].
    _____________

    Vous pouvez optimiser la séquence de code relative à la création de chaque bouton de votre barre d'outil. Votre code original suit le principe suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Set Bouton = CmdBar.Controls.Add(Type:=msoControlButton)
        With Bouton
             .FaceId = 3078
            .OnAction = "Rétablir" ' Ne pas mettre d'accent dans les noms des procédures
        End With
    Vous pouvez factorisation la description de toute la barre d'outil en une seule instruction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ' Pour chaque bouton décrire : info-bulle, nom de procédure sur Click, icône du bouton
    arrBtn = Array(Array("Enregistrer dans historique", "RecordHisto", 3), _
            Array("basculer travail historique", "FlipflopHisto", 170), _
            Array("Monter d'une ligne", "MonterLigne", 594), _
            Array("Descendre d'une ligne", "DescendreLigne", 597), _
            Array("Monter d'une ligne", "MonterLigne", 597), _
            Array("Effacer la ligne", "EffacerLigne", 2060), _
            Array("Effacer les lignes", "EffacerLignes", 1671), _
            Array("Rétablir", "Retablir", 3078), _
            Array("Remise à niveau", "RemiseNiveau", 3033))
    Vous pouvez reconnaître les noms de vos procédures de gestion de l'événement Click ainsi que vos n° d'icônes. On a ajouté en premier position une possible info-bulle.

    Vous trouverez dans 1. Initialisation d'une barre d'outils avec Excel VBA comment cette instruction d'affectation de tableau de tableau est utilisée pour générer la barre d'outil. L'idée est de regrouper la description de la barre d'outil en une seule déclaration dans le tableau (array) de boutons arrBtn sans avoir à répéter la séquence de déclaration pour chaque bouton.

    Les procédures de gestion de l'événement Clic sur chaque bouton de la barre d'outil personnalisée doivent être construites selon la même convention de nommage : "Btn" + nom du bouton + "Click"

    Exemple : BtnRecordHistoClick(), BtnFlipflopHistoClick(), BtnMonterLigneClick(), BtnRemiseNiveauClick().
    C'est pour cela que les noms des procédures doivent être courts.

    Eviter le très long "z_enregistrer_dans_histo". Préférer "RecordHisto" ou "EnregistrerHisto".
    Par contre l'info-bulle "Enregistrer dans historique" que l'utilisateur va voir peut avoir des accents et être plus détaillée que le nom de la procédure correspondante.

    Cette convention de nommage commençant par le préfixe "Btn" (Bouton) permet d'immédiatement identifier qu'il s'agit d'une procédure de gestion de l'événement Clic d'un bouton de votre barre d'outil personnalisée dans la listbox des procédures du VBE.
    ___________

    Si la discussion est résolue, vous pouvez cliquer sur le bouton

    En bas de ce message s'il vous a apporté des éléments de réponse pertinents, pensez également à voter en cliquant sur le bouton vert ci-dessous.

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

Discussions similaires

  1. Barre d'outils personnalisée
    Par gerard101 dans le forum Modélisation
    Réponses: 2
    Dernier message: 24/08/2007, 22h19
  2. Réponses: 2
    Dernier message: 15/06/2007, 14h04
  3. Réponses: 1
    Dernier message: 06/06/2007, 19h53
  4. Une petit plus pour barre d'outils personnalisée
    Par CBleu dans le forum Access
    Réponses: 1
    Dernier message: 27/01/2006, 11h55
  5. [VBA]Barre d'outils personnalisée excel
    Par fikren dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/11/2005, 13h06

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