Aligner les boutons verticalement sur une barre d'outils personnalisée (en VBa)

TalbonJourdal Fred

XLDnaute Nouveau
Bonjour à toutes et à tous et meilleurs vœux pour 2012. :D

Je coince sur un petit truc sûrement tout bête mais je n'arrive pas à trouver la solution. Je m'explique :

J'ai créé une barre d'outils avec 4 boutons pour une application que je développe actuellement (sous excel 2003) et j'aimerais, à l'ouverture de mon fichier que les boutons s'alignent verticalement (les uns au dessus des autres) plutôt qu'horizontalement comme c'est le cas par défaut.

De même, je souhaiterais que n'apparaisse plus le petit contrôle qui permet de personnaliser la barre d'outil que je viens de créer (l'espèce de petit triangle orienté vers le bas à côté de la croix de fermeture en haut à droite).

Je joins ci-dessous le code de ma macro, peut-être peut-il être amélioré ? :eek:

Code:
Public Sub BarreOutilsIn()

Dim Barre As CommandBar, Bouton1, Bouton2, Bouton3, Bouton4

Set Barre = Application.CommandBars.Add
With Barre
    .Name = "Barre d'outils"
    .Left = 400
    .Top = 100

    Set Bouton1 = Controls.Add(msoControlButton)
    With Bouton1
        .Caption = "Données"
        .FaceId = 1036
        .OnAction = "Formulaire_Données"
        .Style = msoButtonIconAndCaption
        .ToolTipText = "Entrée des données de profondeur"
    End With

    Set Bouton2 = Controls.Add(msoControlButton)
    With Bouton2
        .Caption = "Définition des strates"
        .FaceId = 2068
        .OnAction = "Formulaire_Strates"
        .Style = msoButtonIconAndCaption
        .ToolTipText = "Définition des matériaux"
    End With

    Set Bouton3 = Controls.Add(msoControlButton)
    With Bouton3
        .Caption = "Effacer le contenu"
        .FaceId = 47
        .OnAction = "RaZ"
        .Style = msoButtonIconAndCaption
        .ToolTipText = "Effacer les données de l'imprimé"
    End With

    Set Bouton4 = Controls.Add(msoControlButton)
    With Bouton4
        .Caption = "Imprimé suivant"
        .FaceId = 991
        .OnAction = "Imprimé_Suivant"
        .Style = msoButtonIconAndCaption
        .ToolTipText = "Créer un nouvel imprimé"
    End With

    .Visible = True

End With
End Sub

Concernant la disparition du petit contrôle qui permet de personnaliser la barre d'outils, j'ai cherché un peu du côté de l'instruction "Application.CommandBars.DisableCustomize" mais j'avoue que ça n'a pas donné grand chose car je ne sais pas trop où mettre ça dans mon code.
J'ai vu également l'instruction ".LargeButtons" qui me semble intéressante mais même chose, je ne sais pas trop où l'utiliser. De plus, je pense que ça doit agrandir la taille des boutons de toutes les barres d'outils et pas seulement de celle qu'on a créée par la macro.

Voilà, si quelqu'un a une idée, je suis preneur. Merci d'avance. :)
 

fhoest

XLDnaute Accro
Re : Aligner les boutons verticalement sur une barre d'outils personnalisée (en VBa)

Bonjour,
il suffit d’intégré les positionnement des boutons dans leur code de création respectif tel les propriété suivantes .Top et .Left par rapport a ton usf
A+
 

Dranreb

XLDnaute Barbatruc
Re : Aligner les boutons verticalement sur une barre d'outils personnalisée (en VBa)

Bonjour
Les boutons d'une barre d'outils sont automatiquement alignés verticalement si on l'ancre contre le bord vertical droit ou gauche.
Cordialement
 

TalbonJourdal Fred

XLDnaute Nouveau
Re : Aligner les boutons verticalement sur une barre d'outils personnalisée (en VBa)

Bonjour fhoest et Dranreb. Merci pour vos réponses.

fhoest, j'ai essayé d'incorporer les instructions .left et .top dans mon bloc "With Bouton1" mais malheureusement, cela me renvoie une erreur car ma barre d'outil n'est pas un userform mais est créée à partir de l'instruction "CommandBars".

Dranreb, je n'ai pas réussi à aligner ma barre contre un des bords droit ou gauche, je peux changer sa position, mais, par exemple, lorsque je mets les paramètres .left et .top à 0, le coin supérieur gauche de ma barre d'outil est bien collé à gauche mais s'affiche toujours horizontalement.

Je vais continuer à chercher, en tout cas, merci d'avoir passé un peu de temps à me répondre, c'est très sympa. :)
 

Dranreb

XLDnaute Barbatruc
Re : Aligner les boutons verticalement sur une barre d'outils personnalisée (en VBa)

Il faut changer la propriété Position de la barre d'outil pour changer son ancrage: les propriétés Left et Top ne jouent que si Position est msoBarFloating
Position, propriété
Renvoie ou définit la position d'une barre de commandes (barre de commande : Les barres d'outils, barres de menu et menus contextuels (clic droit) sont combinés en une seule fonctionnalité, appelée « barres d'outils » dans l'interface utilisateur et « barres de commande » dans VBA. Il existe trois types de barres de commande : barre de menus, barre d'outils ou menu contextuel.). MsoBarPosition en lecture-écriture.

MsoBarPosition peut être l'une de ces constantes MsoBarPosition.
msoBarBottom
msoBarFloating
msoBarLeft
msoBarMenuBar
msoBarPopup
msoBarRight
msoBarTop
 

Discussions similaires

Statistiques des forums

Discussions
312 211
Messages
2 086 295
Membres
103 171
dernier inscrit
clemm