1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| Sub barre2()
Cancel = True
Dim MaBarre As CommandBar
deletebar
Set MaBarre = Application.CommandBars.add(Name:="Menu2", Position:=msoBarPopup)
couls = Array(xlNone, RGB(255, 150, 100))
Nomcouleur = Array("blanc", "orange")
For i = LBound(couls) To UBound(couls)
Set bout = MaBarre.Controls.add(Type:=msoControlButton)
icone_couleur2 couls(i), 15
With bout: .Caption = Nomcouleur(i): .PasteFace
.OnAction = "'couleurfont " & Chr(34) & ActiveCell.Address & Chr(34) & "," & Chr(34) & couls(i) & Chr(34) & "'"
End With
Next
MaBarre.ShowPopup
End Sub
Sub deletebar()
On Error Resume Next
Application.CommandBars("Menu2").Delete
End Sub
Public Sub icone_couleur2(coul, Optional forme = 5)
Dim ico As Object
With ActiveSheet
Set ico = .Shapes.AddShape(forme, 10, 10, 10, 10)
With ico: .DrawingObject.Interior.Color = coul: .Line.Visible = False: .Copy: .Delete: End With
End With
End Sub
Sub couleurfont(add, lacouleur)
Dim ro
Range(add).Interior.Color = lacouleur
ro = Range(add).Row
Debug.Print Range(Cells(ro, "h"), Cells(ro, "k")).Interior.Color
Select Case Range(Cells(ro, "h"), Cells(ro, "k")).Interior.Color
Case 0: Cells(ro, "g").Interior.Color = vbYellow
Case 16777215: Cells(ro, "g").Interior.Color = vbRed
Case RGB(255, 150, 100): Cells(ro, "g").Interior.Color = vbGreen
'si tu met plus de 2 couleur dans ton array dans barre2
'Case xxxxx:
'Case xxxxx:
'Case xxxxx:
End Select
End Sub |
Partager