|
|
|
|
Bonjour,
Je viens de passer une heure à trouver la solution à un problème qui me semble très simple.
J'ai une liste de couleur dans une colonne sous Excel (en hexa du style 949F77) et je voudrais que dans la colonne
située à coté on voit la couleur de fond égale à cette couleur ou un objet ayant cette couleur.
Merci pour votre attention.
Configuration: Windows XP Firefox 2.0.0.11 Excel 2000 VBA 6.0
Bonsoir c'est d'un RAL utilisé en peinture dont tu parles ?
|
Bonsoir tout le monde,
Sub couleur()
For Each cel In Selection
Dim x As Single, y As Single, largeur As Single, hauteur As Single
Dim r As Integer, g As Integer, b As Integer
On Error GoTo erreur
x = cel.Offset(0, 1).Left
y = cel.Offset(0, 1).Top
largeur = cel.Offset(0, 1).Width
hauteur = cel.Offset(0, 1).Height
r = CInt("&H" & Left(cel.Value, 2))
g = CInt("&H" & Mid(cel.Value, 3, 2))
b = CInt("&H" & Right(cel.Value, 2))
ActiveSheet.Shapes.AddShape(msoShapeRectangle, x, y, largeur, hauteur).Fill.ForeColor.RGB = RGB(r, g, b)
erreur:
Next cel
End Sub
eric |
Bonsoir
|
Salut,
Public Sub coloreCellule()
Dim lig As Integer
Dim maCouleur As String
For lig = 2 To 15
maCouleur = Range(Cells(lig, 2), Cells(lig, 2)).Value
rouge = Mid(maCouleur, 1, 2)
vert = Mid(maCouleur, 3, 2)
bleu = Mid(maCouleur, 5, 2)
r = CInt("&H" & rouge)
g = CInt("&H" & vert)
b = CInt("&H" & bleu)
Range(Cells(lig, 4), Cells(lig, 4)).Interior.Color = RGB(r, g, b)
Next lig
End Sub
Mais les couleurs de remplissage des cellules doivent être situées dans la palette de excel (56 couleurs je crois). Une ligne de code permet de tester ce que je viens de dire. Il suffit d'exécuter la macro suivante : Public Sub test_couleur_hexa()
maCouleur = &H339966
Range(Cells(16, 1), Cells(16, 4)).Interior.Color = &H339966 ' Vert pale
Range(Cells(17, 1), Cells(17, 4)).Interior.Color = &H808570 ' Pas dans la palette
End Sub
La deuxième ligne de code va colorer les 4 cellules en utilisant la couleur de la palette la plus proche. Je pense que le mieux est donc d'utiliser comme tu l'as fait un objet shape. Pour améliorer le code, il faudrait peut-être en faire une macro qui supprime l'ancien shape avant d'en mettre un nouveau, ce qui ferait une feuille excel toujours propre. Avant de finir, voici une page qui traite de manière exhaustive des couleurs dans excel : http://www.mvps.org/dmcritchie/excel/colors.htm Voilà, je pense que ça doit pourvoir aider certaine personne qui se posait la même question que moi Vincent |
Bonjour,
|