Récupérer la couleur d'une cellule
Résolu
Xerium
Messages postés
93
Statut
Membre
-
Xerium Messages postés 93 Statut Membre -
Xerium Messages postés 93 Statut Membre -
Bonjour,
Je suis sur un morceau de code depuis quelques temps maintenant, et ne trouvant vraiment pas de solution, je me tourne vers vous pour chercher de l'aide.
Je code une fonction qui doit renvoyer au format RGB la couleur de fond d'une cellule. La cellule en question est déterminée par la ressource (String) passée en paramètres. Voici le code que j'ai écrit pour cela :
Or, quand la fonction est appelée à l'exécution, j'obtiens l'erreur 438 - "Propriété ou méthode non gérée par cet objet".
Et quand je clique sur Débogage, l'instruction suivante est remise en cause :
c'est-à-dire l'instruction qui fait appel à la fonction.
Une piste ? Une idée ? Une explication ? Je suis preneur :)
Merci d'avance,
--
Xerium
Je suis sur un morceau de code depuis quelques temps maintenant, et ne trouvant vraiment pas de solution, je me tourne vers vous pour chercher de l'aide.
Je code une fonction qui doit renvoyer au format RGB la couleur de fond d'une cellule. La cellule en question est déterminée par la ressource (String) passée en paramètres. Voici le code que j'ai écrit pour cela :
Public Function couleurRessource(ByVal ressource As String)
Dim cellule As Range
Dim ligne As Integer
Set cellule = Feuil2.Range("B:B").Find(ressource, lookat:=xlWhole)
If cellule Is Nothing Then
couleurRessource = RGB(0, 0, 0)
Else
ligne = cellule.Row
couleurRessource = Feuil2.Range("D" & ligne).Interior.Color
End If
End Function
Or, quand la fonction est appelée à l'exécution, j'obtiens l'erreur 438 - "Propriété ou méthode non gérée par cet objet".
Et quand je clique sur Débogage, l'instruction suivante est remise en cause :
Selection.ShapeRange.Fill.ForeColor.RGB = couleurRessource(ressource)
c'est-à-dire l'instruction qui fait appel à la fonction.
Une piste ? Une idée ? Une explication ? Je suis preneur :)
Merci d'avance,
--
Xerium
9 réponses
-
Bonjour,
Une facon de voir, il faut decoder la couleur en RGB
Sub test_color() Dim R As Long, G As Long, B As Long R = 0 G = 0 B = 0 'adapter a votre resource ressource = "c" x = couleurRessource(ressource, R, G, B) With Worksheets("feuil1") .Shapes("Triangle isocèle 2").Select Selection.ShapeRange.Fill.ForeColor.RGB = RGB(R, G, B) End With End Sub Public Function couleurRessource(ByVal ressource As String, R As Long, G As Long, B As Long) Dim cellule As Range Dim ligne As Integer Set cellule = Feuil2.Range("B:B").Find(ressource, lookat:=xlWhole) If Not cellule Is Nothing Then ligne = cellule.Row couleur = Feuil2.Range("D" & ligne).Interior.Color 'conversion Couleur en RGB R = Int(couleur Mod 256) G = Int((couleur Mod 65536) / 256) B = Int(couleur / 65536) End If End Function
Bonne suite