Positionnement des commandbars [Résolu/Fermé]

Signaler
Messages postés
341
Date d'inscription
mercredi 16 décembre 2015
Statut
Membre
Dernière intervention
7 novembre 2019
-
Messages postés
8186
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
20 septembre 2020
-
Bonjour,

Je n’arrive pas à trouver une solution pour deux actions :

a) Positionner mes commandbars en ligne et non l’une sous l’autre
b) Avoir un fond de couleur différent pour chaque commandbars

Voici mon fichier : https://www.cjoint.com/c/FDyq2i24yXt

Merci de votre aide

Cordialement

6 réponses

Messages postés
8186
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
20 septembre 2020
1 471
Bonjour,

a) Positionner mes commandbars en ligne et non l’une sous l’autre :
Ajoutes RowIndex et Left dans ton code comme ceci :
With Cbar
    .Visible = True
    .Protection = msoBarNoMove + msoBarNoCustomize
    .RowIndex = 4
    .Left = 1
End With
With Cbar1
    .Visible = True
    .Protection = msoBarNoMove + msoBarNoCustomize
    .RowIndex = 4
    .Left = Cbar.Width
End With
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60862 internautes nous ont dit merci ce mois-ci

Messages postés
8186
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
20 septembre 2020
1 471
PS : Pourquoi .RowIndex = 4 ?
1) cette valeur (4) doit être supérieure à celle des barres existantes pour que la ligne sur laquelle seront positionnées tes deux barres soit en dessous des barres existantes. Il faudra peut-être mettre une valeur plus élevée.
2) la valeur des deux barres doit être la même pour qu'elles soient sur la même ligne.
Messages postés
341
Date d'inscription
mercredi 16 décembre 2015
Statut
Membre
Dernière intervention
7 novembre 2019
7 >
Messages postés
8186
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
20 septembre 2020

Bonjour,

Merci pour cette réponse , ta solution fonctionne nickel.

Maintenant je galère pour trouver une solution au problème que j'ai créé en utilisant une dérivée de la solution du post 7 " avec une erreur que j'ai involontairement créée dans le ode" que j'explique au post 10.

Cordialement
Messages postés
8186
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
20 septembre 2020
1 471
Bonjour,

Pour positionner les barres utilises les propriétés RowIndex et Left.
Par contre je ne pense pas que tu puisses modifier le couleur de la barre.
Messages postés
341
Date d'inscription
mercredi 16 décembre 2015
Statut
Membre
Dernière intervention
7 novembre 2019
7
Bonjour,

Merci pour cette réponse, mais comment utiliser ces propriétés dans mon code ?

cordialement
Messages postés
6924
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
21 septembre 2020
549
Messages postés
8186
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
20 septembre 2020
1 471
Bonjour,

Dans ses exemples, Jacques n'emploie ni RowIndex, ni Left !!!

patrice
Messages postés
8186
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
20 septembre 2020
1 471
Messages postés
341
Date d'inscription
mercredi 16 décembre 2015
Statut
Membre
Dernière intervention
7 novembre 2019
7
Bonjour,

Merci pour ces réponses, mais je n'ai rien compris, pour pouvoir l'adapter à mon code.

Cordialement
Messages postés
6924
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
21 septembre 2020
549
Voir ceci:

https://fring.developpez.com/vba/excel/barremenu/#L2.3

A adapter mettre dans un module:

Option Explicit
Sub test_zone_txt()
Dim Cbar As CommandBar

Set Cbar = CommandBars.Add(Name:="MaBarre", Position:=msoBarTop, Temporary:=True)
With Cbar
    .Visible = True
End With
With CommandBars("MaBarre").Controls.Add(Type:=msoControlEdit)
    .Style = msoComboLabel
    .Caption = "Devis :"
    .TooltipText = "info-bulle zone txt 1"
    .Tag = "txt1"
    .OnAction = "MaMacro1"
End With

With CommandBars("MaBarre").Controls.Add(Type:=msoControlEdit)
    .Style = msoComboLabel
    .Caption = "Facture :"
    .TooltipText = "info-bulle zone txt 2"
    .Tag = "txt2"
    .OnAction = "MaMacro2"
    .BeginGroup = True
End With

End Sub
Sub Sup_Cbar()
Dim Cbar As CommandBar
For Each Cbar In CommandBars
    If Cbar.BuiltIn = False Then Cbar.Delete
Next
End Sub


Mettre dans ThisWorkbook:

Option Explicit
Private Sub Workbook_Open()
test_zone_txt
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Sup_Cbar
End Sub

Messages postés
341
Date d'inscription
mercredi 16 décembre 2015
Statut
Membre
Dernière intervention
7 novembre 2019
7
Bonjour CS_Le Pivert, Bonjour le forum

Merci pour ton code qui correspond à mon attente.

J’ai modifié le nom de la CommandBars en 1 mais dans le with j’a oublier de le remettre entre guillemets.

Ça cré bien le menus mais plus possible de les supprimer.

Y a-t-il une solution ?

Merci d’avance

Voici le code mis en place :


Option Explicit
Sub test_zone_txt()
Dim Cbar As CommandBar

Set Cbar = CommandBars.Add(Name:="1", Position:=msoBarTop, Temporary:=True)
With Cbar
.Visible = True
End With
With CommandBars(1).Controls.Add(Type:=msoControlEdit)
.Style = msoComboLabel
.Caption = "Devis :"
.TooltipText = "info-bulle zone txt 1"
.Tag = "txt1"
.OnAction = "MaMacro1"
End With

With CommandBars(1).Controls.Add(Type:=msoControlEdit)
.Style = msoComboLabel
.Caption = "Facture :"
.TooltipText = "info-bulle zone txt 2"
.Tag = "txt2"
.OnAction = "MaMacro2"
.BeginGroup = True
End With

End Sub
Sub Sup_Cbar()
Dim Cbar As CommandBar
For Each Cbar In CommandBars
If Cbar.BuiltIn = False Then Cbar.Delete
Next
End Sub


Cordialement
Messages postés
341
Date d'inscription
mercredi 16 décembre 2015
Statut
Membre
Dernière intervention
7 novembre 2019
7
Bonjour à tous,

J’ai trouvé la solution à mon problème du post 10 avec une action manuelle :

il faut faire Affichage/barre d'outils/Personnaliser puis aller sur l'onglet Barre
d’outils, sélectionner "Barre de menus feuille de calcul" puis "réinitialiser".


Cordialement
Messages postés
8186
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
20 septembre 2020
1 471
C'est effectivement le plus simple !