modifier une barre d'outils de boisgontier (barre coloriage)

pascal21

XLDnaute Barbatruc
Code:
Sub auto_open()
   On Error Resume Next
   CommandBars.Add ("BarreColoriage")
   CommandBars("BarreColoriage").Visible = True
   For i = 1 To [couleurs].Count
      Set bouton = CommandBars("BarreColoriage").Controls.Add(Type:=msoControlButton)
      bouton.Style = msoButtonCaption
      bouton.Tag = i
      bouton.OnAction = "'Coloriage """ & bouton.Tag & """'"
      bouton.Caption = Range("couleurs")(i)
   Next i
End Sub
Sub Coloriage(p)
   For Each c In Selection
     If Not Intersect([planning], c) Is Nothing Then
       c.Value = Range("couleurs")(p).Value
       c.Interior.ColorIndex = Range("couleurs")(p).Interior.ColorIndex
       'Range("couleurs")(p).Copy C
     End If
   Next c
End Sub

Sub auto_close()
    On Error Resume Next
    Application.CommandBars("BarreColoriage").Delete
End Sub
bonjour à tous
je viens de télécharger la barre coloriage de boisgontier sur son site
ça marche très bien
mais est-il possible de faire en sorte qu'elle n'apparaisse dans la barre d'outils que dans le classeur qui m'interesse
ou que son utilisation soit bloquée sur les autre classeurs
je pense qu'il y a une ligne du code à mettre dans workbook open mais je ne vois pas quoi
merci pour votre aide
 

pascal21

XLDnaute Barbatruc
Re : modifier une barre d'outils de boisgontier (barre coloriage)

bonjour Job
j'ai essayé mais la barre d'outils n'était visible nul part
mais en partant de ton idée j'ai laissé la première partie dans le module et je l'ai renommée barre_coloriage
dans workbook open j'ai mis call barre coloriage
je ne sais pas si c'est bien optimisé mais ça fonctionne
la barre n'est visible que dans le classeur voulu
merci pour ton aide
sympas les barres d'outil personalisées je ne connaissais pas, je vais étudier un peu le sujet
ça ne devrait pas être compliqué grâce au site de boisgontier qui est une vrai mine d'or et à ce site bien sure lol!!
celle là va me permettre d'effacer quelques boutons qui avaient la même fonction
 

job75

XLDnaute Barbatruc
Re : modifier une barre d'outils de boisgontier (barre coloriage)

Re,

Les macros que j'ai indiquées doivent être placées dans ThisWorkBook.

Mais je n'ai pas testé, peut-être qu'alors ça ne fonctionne pas pour les CommandBars.

Dans ce cas les laisser dans un Module, en les nommant Sub Auto_activate() et Sub Auto_deactivate()

A+
 

job75

XLDnaute Barbatruc
Re : modifier une barre d'outils de boisgontier (barre coloriage)

Re,

Non, Auto_activate() et Auto_deactivate() ne fonctionnent pas.

Donc il faut bien faire ce que tu as fait : mettre les macros dans un Module et les appeler par les Private Sub Workbook... depuis ThisWorkbook.

A+
 

pascal21

XLDnaute Barbatruc
Re : modifier une barre d'outils de boisgontier (barre coloriage)

bonjour à tous
ça fonctionne à un petit détail près
comment faire en sorte que cette barre d'outils reste dans le bandeau "barre d'outils " et ne vienne pas s'ouvrir au milieu de la feuille à l'ouverture du classeur?
pour l'instant, je suis obligé de la glisser en dehors de la feuille à chaque ouverture
sinon c'est carrément génial cette barre
tout à fait ce dont j'avais besoin
 

bqtr

XLDnaute Accro
Re : modifier une barre d'outils de boisgontier (barre coloriage)

Bonjour Pascal21, job75

Pour mettre la barre en haut (en dessous des autres) :

Code:
'.../...
 On Error Resume Next
   CommandBars.Add ("BarreColoriage")
   CommandBars("BarreColoriage").Visible = True
   [B][SIZE=3]CommandBars("BarreColoriage").Position = msoBarTop[/SIZE][/B]
   For i = 1 To [couleurs].Count
'.../...

Bonne fin de journée

A+
 

pascal21

XLDnaute Barbatruc
Re : modifier une barre d'outils de boisgontier (barre coloriage)

bonjour BQTR
je viens d'essayer ça fonctionne elle se met bien en haut, mais elle doit être fière cette commandbar, parce que elle ne se met pas à coté des autres pourtant il y a de la place
enfin!! c'est mieux que rien
merci bonne soirée
 

job75

XLDnaute Barbatruc
Re : modifier une barre d'outils de boisgontier (barre coloriage)

Re, salut bqtr,

Plutôt que de créer une barre d'outils, on peut aussi ajouter des boutons à la barre d'outils "Standard".

Ce n'est guère plus compliqué, mais ce n'est pas le sujet ici.

A+
 

bqtr

XLDnaute Accro
Re : modifier une barre d'outils de boisgontier (barre coloriage)

Bonsoir,

Je remets l'exemple pour créer des boutons supplémentaires dans la barre de menu. Cela pourra peut-être te donner des idées :

Création des boutons :
Code:
Sub CreatBtn()

Dim NewBtn As CommandBarButton, k As Integer

On Error Resume Next
For k = 1 To [couleurs].Count
  Set NewBtn = Application.CommandBars("Worksheet Menu Bar").Controls.Add(Type:=msoControlButton)
    With NewBtn
     .Style = msoButtonCaption
     .Tag = k
     .Width = 20 'largeur des boutons
     .OnAction = "'Coloriage """ & .Tag & """'"
     .Caption = Range("couleurs")(k)
     .DescriptionText = "BtnCouleur"
    End With
Next
   
End Sub

Code pour supprimer les boutons à la fermeture du fichier :
Code:
Sub SupBtn()

Dim y As Integer

On Error Resume Next
For y = Application.CommandBars(1).Controls.Count To 1 Step -1
   If Application.CommandBars(1).Controls(y).DescriptionText = "BtnCouleur" Then Application.CommandBars(1).Controls(y).Delete
Next

End Sub

Macros à mettre dans le module du Thisworkbook du fichier :
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
SupBtn
End Sub

Private Sub Workbook_Open()
CreatBtn
End Sub

La macro Coloriage(p) elle ne change pas.
Fait attention tout de même au nombre de boutons.

Bonne soirée

A+
 

pascal21

XLDnaute Barbatruc
Re : modifier une barre d'outils de boisgontier (barre coloriage)

bonsoir à tous
merci pour le code mais c'est assez compliqué à comprendre
je vais me contenter de la barre d'outils que j'ai limité à la seule feuille concernée
en appelant la macro dans sheets activate
bonne soirée
 

Discussions similaires

Statistiques des forums

Discussions
312 239
Messages
2 086 494
Membres
103 234
dernier inscrit
matteo75654548