• Initiateur de la discussion Initiateur de la discussion gg13
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

gg13

XLDnaute Occasionnel
Salut le forum.

Je reviens sur une question déjà posée mais sans avoir de réponse,
peut être cette fois aurai-je plus de chance….

J’ai crée deux barres d’outils personnelles, mais suivant la taille de l’écran elles s’affichent sur une ou deux lignes.
Comment forcer l’affichage sur deux lignes en VBA ?

Merci de votre aide
gg13
 
Re : Barres outils

Bonjour,

Si je fais tourner les macros suivantes

Code:
Sub CreeCommandBar()
Dim CB As CommandBar
Call SupprimeCommandBar
Set CB = Application.CommandBars.Add(Name:="pmo1")
CB.Visible = True
CB.Position = msoBarTop
Set CB = Application.CommandBars.Add(Name:="pmo2")
CB.Visible = True
CB.Position = msoBarTop
End Sub

Sub SupprimeCommandBar()
Dim CB As CommandBar
On Error Resume Next
For Each CB In Application.CommandBars
  If CB.Name = "pmo1" Then CB.Delete
  If CB.Name = "pmo2" Then CB.Delete
Next CB
End Sub

j'obtiens, chez moi, les 2 barres qui s'affichent sur 2 lignes distinctes.

Est-ce que cela répond à votre problème ?

Cordialement.

PMO
Patrick Morange
 
Re : Barres outils

Bonjour le forum
PMO2 Merci de ta réponse dans ton cas cette macro marche,mon cas est un peu différent.Les barres d'outils sont enregistrées avec le classeur et non crées en VBA à l'ouverture.
Mais tu m'as beaucoup aidé en me donnant la syntaxe
J'ai testé
Application.CommandBars("GG").Position = msoBarTop
Application.CommandBars("GG1").Position = msoBarTop
malheureusement les 2 barres restent sur la même ligne
Application.CommandBars("GG").Position = msoBarTop1
Application.CommandBars("GG1").Position = msoBarTop2
ne marche pas.
Application.CommandBars("GG").Position = msoBarLeft
Application.CommandBars("GG1").Position = msoBarLeft
positionne les barres à gauche.
Si tu as une autre idée je te remercie d'avance.
Cordialement
GG13
 
Re : Barres outils

Bonjour,

L'idée est de faire un pseudo déplacement à gauche pour la barre1 et un pseudo déplacement à droite pour la barre2 PUIS de les déplacer, chacune à leur tour, en haut.

Code:
Sub BarresPersosAuTop()
Dim CB1 As CommandBar
Dim CB2 As CommandBar
On Error Resume Next
Set CB1 = Application.CommandBars("GG")
Set CB2 = Application.CommandBars("GG1")
On Error GoTo 0
If Not CB1 Is Nothing And Not CB2 Is Nothing Then
  '--- Pseudo déplacement ---
  CB1.Position = msoBarLeft
  CB2.Position = msoBarRight
  '--- Déplacement réel ---
  CB1.Position = msoBarTop
  CB2.Position = msoBarTop
End If
End Sub

Cordialement.

PMO
Patrick Morange
 
Re : Barres outils

Rebonjour.

En fait j'avais déjà testé avec left puis top ensuite, dans ce cas la barre n°2
se place bien au dessous de la 1 mais au centre de la ligne et non à gauche donc la partie droite n'est plus visible.
Après plusieurs tests le résultat semble dépendre de la largeur d'affichage et du nombre d'items dans la barre d'outils.
Je vais me contenter de ce résultat et créer une troisième barre dans ce cas les 3 se calent à gauche et tous les outils sont visibles.
Merci de ton aide et à bientôt à tous sur ce super forum.

GG13
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
432
Réponses
30
Affichages
3 K
Réponses
2
Affichages
646
Retour