Option Explicit
Public MonRuban As IRibbonUI
'Callback for customUI.onLoad
'Est déclenché lors du chargement du ruban personnalisé.
Sub onLoad(ribbon As IRibbonUI)
Set MonRuban = ribbon
End Sub
'Callback for highlightGallery getEnabled
Sub GetEnabled(control As IRibbonControl, ByRef returnedVal)
returnedVal = True
End Sub
'Callback for highlightGallery getItemCount
'Définit le nombre de couleurs dansla palette
Sub GetItemCount(control As IRibbonControl, ByRef returnedVal)
returnedVal = 56
End Sub
'Callback for highlightGallery getItemHeight
Sub GetItemHeight(control As IRibbonControl, ByRef returnedVal)
returnedVal = 20
End Sub
'Callback for highlightGallery getItemWidth
Sub GetItemWidth(control As IRibbonControl, ByRef returnedVal)
returnedVal = 20
End Sub
'Callback for highlightGallery getItemImage
'Crée la palette de couleur
Sub GetItemImage(control As IRibbonControl, index As Integer, ByRef returnedVal)
Dim ColTemp As Integer
Dim Fichier As String
Application.ScreenUpdating = False
Fichier = "C:\ImageTemp.jpg"
If Dir(Fichier) <> "" Then Kill Fichier
ColTemp = Feuil1.Range("A1").Interior.ColorIndex
Feuil1.Range("A1").Interior.ColorIndex = index
Feuil1.Range("A1").CopyPicture
'Crée un graphique temporaire
With Feuil1.ChartObjects.Add(0, 0, _
Feuil1.Range("A1").Width, Feuil1.Range("A1").Height).Chart
.Paste
'exporte l'image sur le disque dur, dans le même répertoire que ce classeur.
.Export Fichier, "JPG"
End With
With Feuil1
'Supprime le graphique temporaire
.ChartObjects(Feuil1.ChartObjects.Count).Delete
'Supprime l'image dans la feuille.
' .Shapes(Feuil1.Shapes.Count).Delete
End With
Set returnedVal = LoadPicture(Fichier)
Range("A1").Interior.ColorIndex = ColTemp
Application.ScreenUpdating = True
End Sub
'Callback for highlightGallery onAction
'Colorie les cellules sélectionnées
Sub InsertFillColor(control As IRibbonControl, id As String, index As Integer)
Selection.Interior.ColorIndex = index
End Sub
'Callback for noColorButton onAction
'Supprime les couleurs dans les cellules sélectionnées
Sub RemoveFillColor(control As IRibbonControl)
Selection.Interior.ColorIndex = xlNone
End Sub