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 :

Barres d'outils personnalisées [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre émérite Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Points : 2 439
    Points
    2 439
    Par défaut Barres d'outils personnalisées
    Bonjour tout le monde,

    Sur un fichier Excel j'aimerais mettre à disposition plusieurs fonctionnalités directement dans le ruban.
    Fonctionnalités du type :
    • Ajouter une ligne : ouvre un UF de saisie
    • Supprimer une ligne : vérifie que l'utilisateur a bien le droit de supprimer la ligne
    • Ajouter un commentaire : les commentaires sont formatés (l'utilisateur passe par un UF de saisie)
    • ...


    J'ai en tout 10 fonctionnalités différentes (peut être plus par la suite) et j'aimerais éviter de mettre des boutons partout sur la feuille ou sur clic droit (solution actuelle).
    Je me suis donc inspiré du tuto : VBA EXCEL Création d'une barre de menus personnalisée

    Mes premières questions :
    • Pourquoi l'argument position de la méthode CommandBars.Add ne change absolument rien chez moi ?
    • Pourquoi la propriété BeginGroup ne change rien sur mes ControlButton ?


    Voila le code que j'ai fait :
    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    Sub AjouterBar()
        Dim objBar As CommandBar, CmB_Bt As CommandBarButton, CmB_pop As CommandBarPopup, shp As Shape
     
            Set objBar = CommandBars.Add(name:="Gestion Ligne", Temporary:=True)
            With objBar
                Set CmB_Bt = .Controls.Add(msoControlButton)
                With CmB_Bt
                    .TooltipText = "Supprime la barre"
                    .FaceId = 358
                    .OnAction = "Sup_Cbar"
                    .Style = msoButtonIcon
                End With
            'Ajouter ligne
                Set CmB_Bt = .Controls.Add(msoControlButton)
                With CmB_Bt
                    .Caption = "Ajouter ligne"
                    .TooltipText = "Ajoute une ligne Hors Plan au suivi PDF"
                    .FaceId = 213
                    .OnAction = "nouvelleLigne"
                    .Style = msoButtonIconAndCaptionBelow
                    .Tag = "AddRow"
                End With
            'Supprimer ligne
                Set CmB_Bt = .Controls.Add(msoControlButton)
                With CmB_Bt
                    .Caption = "Supprimer ligne"
                    .TooltipText = "Supprime la ligne active (uniquement sur Hors Plan)"
                    .FaceId = 214
                    .OnAction = "Supprimer_Ligne_Active"
                    .Style = msoButtonIconAndCaptionBelow
                    .Tag = "DelRow"
                End With
            'affiche la barre
                .Visible = True
            End With
     
            Set objBar = CommandBars.Add(name:="PDF", Temporary:=True)
            With objBar
            'Ajouter Commentaire
                Set CmB_Bt = .Controls.Add(msoControlButton)
                With CmB_Bt
                    .Caption = "Ajouter Commentaire"
                    .TooltipText = "Ajoute un commentaire sur la ligne active"
                    .FaceId = 938
                    .OnAction = "Lancer_UF_Commentaire"
                    .Style = msoButtonIconAndCaptionBelow
                    .Tag = "AddComm"
                End With
            'Top Monito
                Set CmB_Bt = .Controls.Add(msoControlButton)
                With CmB_Bt
                    .Caption = "Top monito"
                    .TooltipText = "Top la ligne pour le monito du mois"
                    .FaceId = 103
                    .OnAction = "Ajouter_Top_Monito_ActiveRow"
                    .Style = msoButtonIconAndCaptionBelow
                    .Tag = "AddTop"
                End With
            'affiche la barre
                .Visible = True
            End With
     
            Set objBar = CommandBars.Add(name:="Filtre", Temporary:=True)
            With objBar
            'Effacer filtres
                Set CmB_Bt = .Controls.Add(msoControlButton)
                With CmB_Bt
                    .Caption = "Effacer filtres"
                    .TooltipText = "Supprime tous les filtres"
                    .FaceId = 605
                    .OnAction = "EffacerFiltres"
                    .Style = msoButtonIconAndCaptionBelow
                    .Tag = "EffFiltres"
                End With
            'Info Filtre
                Set CmB_Bt = .Controls.Add(msoControlButton)
                With CmB_Bt
                    .Caption = "Info Filtre"
                    .TooltipText = "Message d'information sur les filtres de la feuille"
                    .FaceId = 487
                    .OnAction = "Info_Filtre"
                    .Style = msoButtonIconAndCaptionBelow
                    .Tag = "InfoFiltre"
                End With
            'Filtre sur cellule
                Set CmB_Bt = .Controls.Add(msoControlButton)
                With CmB_Bt
                    .Caption = "Filtre Cellule"
                    .TooltipText = "Filtre sur la cellule active"
                    .FaceId = 603
                    .OnAction = "Filtrer_Sur_ActiveCell"
                    .Style = msoButtonIconAndCaptionBelow
                    .Tag = "FiltrerSurActiveCell"
                End With
            'Filtre sur mes lignes
                Set CmB_pop = .Controls.Add(msoControlPopup)
                With CmB_pop
                    .Caption = "Filtrer sur mes lignes"
                    Set CmB_Bt = .Controls.Add(msoControlButton)
                    With CmB_Bt
                        .Caption = "QUI 1"
                        .OnAction = "Filtrer_Qui1"
                    End With
                    Set CmB_Bt = .Controls.Add(msoControlButton)
                    With CmB_Bt
                        .Caption = "QUI 2"
                        .OnAction = "Filtrer_Qui2"
                    End With
                    Set CmB_Bt = .Controls.Add(msoControlButton)
                    With CmB_Bt
                        .Caption = "RP"
                        .OnAction = "Filtrer_RP"
                    End With
                End With
            'affiche la barre
                .Visible = True
            End With
    fin:
        Set objBar = Nothing
        Set CmB_Bt = Nothing
        Set CmB_pop = Nothing
        Set shp = Nothing
    End Sub
     
    Sub Sup_Cbar()
        Dim Cbar As CommandBar
            For Each Cbar In CommandBars
                If Cbar.BuiltIn = False Then Cbar.Delete
            Next
    End Sub
    Tous les boutons fonctionnent, mon problème réside dans l'aspect du ruban :
    Nom : BarrePerso.png
Affichages : 1275
Taille : 32,0 Ko
    J'aimerais créer 3 groupes et pouvoir renommer l'onglet dans le ruban. Est-ce possible ?

    En fait j'aimerais faire un truc jolie

    Merci d'avance a ceux qui me donnerons des pistes pour améliorer le rendu.
    Antony

    Mieux vaut ne rien dire et passer pour un con que de l'ouvrir et ne laisser aucun doute à ce sujet.
    Gustave Parking


    Si le post vous est utile un petit fait toujours plaisir et pensez à passer en

    Et surtout -> Balise CODE

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Ingénieur Mécatronique
    Inscrit en
    Décembre 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur Mécatronique
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2016
    Messages : 4
    Points : 6
    Points
    6
    Par défaut
    Salut salut,

    Tu poses deux questions mais je remarque que les deux commandes concernées n'apparaissent pas dans ton code ? (Ou alors je suis vraiment aveugle )

    Pour essayer de t'apporter des éléments :

    • Pour la position de ton Commandbars.Add :

      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      Set objBar = CommandBars.Add(name:="Gestion Ligne", Position:=msoBarTop, Temporary:=True)
      Où tu remplaces msoBarTop par l'argument qui va bien si tu veux le mettre ailleurs qu'en haut ^^
    • Pour le BeginGroup

      Tout pareil je n'arrive pas à voir où tu l'as mis dans ton code.

      Pour la création des 3 groupes je ne saurais t'en dire plus, jamais essayé de faire quelque chose comme ça ^^

      Kratan

  3. #3
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    de toute facon avec commandbars.add on dispose des jeux d'icones en 16(tout petit) tandis qu'en xml on peut placer différement les bouton pour qu'ils soient ajuster

    je crois me souvenir que l'on fait ca avec customui editor il me semble

    voila voila

    comme tel il te faudra jouer avec les séparateur et beguin (true/false) voir des bouton vides
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  4. #4
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274

  5. #5
    Membre émérite Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Points : 2 439
    Points
    2 439
    Par défaut
    Bonjour,

    Merci à vous trois pour vos réponses.

    @Kratan :
    J'ai enlevé les deux commandes car elles ne changent rien à l'aspect de la barre de commande dans le ruban.

    @patricktoulon @kiki29 :
    En continuant mes recherches, j'ai compris qu'effectivement je devais utiliser du xml.


    Je vais lire en détail le tuto du lien de kiki29. Je pense y trouver tout ce qu'il me faut.
    C'est nouveau pour moi alors j'ouvrirais surement une nouvelle discussion a ce sujet après avoir bien pris le temps de lire le tuto.

    Merci
    Bonne journée
    Antony

    Mieux vaut ne rien dire et passer pour un con que de l'ouvrir et ne laisser aucun doute à ce sujet.
    Gustave Parking


    Si le post vous est utile un petit fait toujours plaisir et pensez à passer en

    Et surtout -> Balise CODE

+ 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