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
colorbox palette couleurs excel vba

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
colorbox choix couleurs excel vba

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 87 nouvelles fonctions).