Fonction VBA : colorBox
La fonction VBA colorBox ouvre une boîte de dialogue permettant à l'utilisateur de choisir une couleur parmi une large palette de 160 couleurs (il est également possible d'entrer une couleur personnalisée au format hexadécimal).
Cette fonction renvoie -1 si l'utilisateur n'a pas effectué de choix de couleur.
Utilisation :
colorBox
ou
colorBox(couleur_initiale, titre)
(arguments facultatifs)
Exemple d'utilisation avec un UserForm
Au clic sur le bouton de l'UserForm, l'utilisateur choisit la nouvelle couleur du bouton :
Private Sub CommandButton_couleur_Click()
CommandButton_couleur.BackColor = colorBox
End Sub

Exemple d'utilisation sur une feuille Excel
Au clic sur une cellule de la 3e colonne, la cellule prend la couleur choisie par l'utilisateur :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 3 Then 'Si colonne C
Target.Interior.Color = colorBox
End If
End Sub
La fonctionnalité du code ci-dessous est identique au précédent à la différence près que la couleur de la cellule n'est modifiée que si l'utilisateur choisit une couleur (valeur renvoyée = -1 si aucun choix) et que le premier argument facultatif est spécifié (ici, la couleur de la cellule avant modification est présélectionnée dans la colorBox) :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 3 Then 'Si colonne C
couleur = colorBox(Target.Interior.Color)
If couleur > -1 Then 'Si l'utilisateur a choisi une couleur
Target.Interior.Color = couleur
End If
End If
End Sub

Exemple d'utilisation en vidéo
Remarque : cette fonction nécessite l'installation du pack de fonctions XLP (un add-in gratuit pour Excel qui ajoute 92 nouvelles fonctions).