Positionnement des commandbars

Résolu
mijean94 Messages postés 413 Date d'inscription   Statut Membre Dernière intervention   -  
Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   -
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

  1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
     
    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
    1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
       
      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.
      0
      1. mijean94 Messages postés 413 Date d'inscription   Statut Membre Dernière intervention   11 > Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention  
         
        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
        0
  2. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
     
    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.
    0
    1. mijean94 Messages postés 413 Date d'inscription   Statut Membre Dernière intervention   11
       
      Bonjour,

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

      cordialement
      0
  3. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    0
    1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
       
      Bonjour,

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

      patrice
      0
  4. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
     
    0
    1. mijean94 Messages postés 413 Date d'inscription   Statut Membre Dernière intervention   11
       
      Bonjour,

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

      Cordialement
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    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
    

    0
    1. mijean94 Messages postés 413 Date d'inscription   Statut Membre Dernière intervention   11
       
      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
      0
  7. mijean94 Messages postés 413 Date d'inscription   Statut Membre Dernière intervention   11
     
    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
    0
    1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
       
      C'est effectivement le plus simple !
      0