Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Résolu :Récupérer la couleur d'un shape

Calvus

XLDnaute Barbatruc
Bonsoir le forum,

Quelqu'un sait il comment faire ?

Merci et bonne soirée.

EDIT : Solution trouvée, sujet résolu.
 
Dernière édition:

Calvus

XLDnaute Barbatruc
Re : Résolu :Récupérer la couleur d'un shape

Bonjour Laetitia,

Tu as raison. Je m'étais posé la question de savoir si je mettais ma solution, ce que j'aurais fait naturellement, mais me suis rétracté car je ne trouvais pas que ce fut une réelle solution, car j'ai finalement procédé manuellement.
J'imaginais de prime abord une solution par VBA.

Voici donc ce que j'ai fait, à savoir du bricolage...

J'ai simplement sélectionné les différents shapes affichés, et récupéré les valeurs RVB (ou RGB) inscrites dans l'onglet Format, Remplissage de forme, Autres couleurs de remplissage, Personnalisées.

Si ça peut aider quelqu'un d'autre, tant mieux.

Si quelqu'un a une solution plus rapide (VBA, car ça m'a pris une bonne vingtaine de minutes de récupérer toutes les valeurs..), je suis, (nous sommes), preneur(s) !

Bonne journée
 

Pièces jointes

  • Couleur Shape.PNG
    49.8 KB · Affichages: 87

DoubleZero

XLDnaute Barbatruc
Re : Résolu :Récupérer la couleur d'un shape

Bonjour, Calvus , Laetitia , le Forum,

Je ne sais proposer mieux...

Code:
Option Explicit
Sub Shape_sélectionné_couleur_connaître()
    Dim c As Shape
    On Error GoTo fin
    MsgBox "56 couleurs : " & Selection.ShapeRange.Fill.ForeColor.SchemeColor - 7
    MsgBox "RGB : " & Selection.ShapeRange.Fill.ForeColor.RGB
    Exit Sub
fin:
    MsgBox "Sélectionner un shape !"
End Sub

A bientôt
 

job75

XLDnaute Barbatruc
Re : Résolu :Récupérer la couleur d'un shape

Bonjour Calvus, Laetitia, DoubleZero,

Code:
Sub Couleurs_RGB()
If TypeName(Selection) = "Range" Then Exit Sub
With Selection.ShapeRange.Fill.ForeColor
  MsgBox "Rouge = " & Int(.RGB Mod 256) & vbLf & _
         "Vert = " & Int((.RGB Mod 65536) / 256) & vbLf & _
         "Bleu = " & Int(.RGB / 65536), , "Couleurs RGB"
End With
End Sub
A+
 

job75

XLDnaute Barbatruc
Re : Résolu :Récupérer la couleur d'un shape

Re,

Pour obtenir les couleurs de toutes les Shapes de la feuille active :

Code:
Sub Couleurs_RGB()
Dim s As Shape
For Each s In ActiveSheet.Shapes
  With s.Fill.ForeColor
    MsgBox "Rouge = " & Int(.RGB Mod 256) & vbLf & _
           "Vert = " & Int((.RGB Mod 65536) / 256) & vbLf & _
           "Bleu = " & Int(.RGB / 65536), , "Couleurs RGB " & s.Name
  End With
Next
End Sub
A+
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Résolu :Récupérer la couleur d'un shape

Bonjour,

Cette fonction donne la couleur d'une image

Code:
Function couleurImage(s)
  Application.Volatile
  Set f = Sheets(Application.Caller.Parent.Name)
  couleurImage = f.Shapes(s).Fill.ForeColor.RGB
End Function

Colorie un shape "aa" avec la couleur d'un autre shape "monshape"

=colorieimage("aa" ;couleurimage("monshape"))


Code:
Function ColorieImage(s, couleur)
  Application.Volatile
  Set f = Sheets(Application.Caller.Parent.Name)
  f.Shapes(s).Fill.ForeColor.RGB = couleur
End Function

http://boisgontierjacques.free.fr/fichiers/Images/fonctionColoriageShape.xls

JB
 

Pièces jointes

  • fonctionColoriage5.xls
    40 KB · Affichages: 66
Dernière édition:

Calvus

XLDnaute Barbatruc
Re : Résolu :Récupérer la couleur d'un shape

Bonsoir Double Zero, Job75, Boigontier, le Forum,

Merci pour vos réponses. Je n'y comprends toujours rien, mais c'est très intéressant en tout cas.

00, ton code est bien pratique pour avoir les couleurs de la palette

Job75, le 1er code est parfait. Le second code fait une boucle infinie.

JB, Je ne suis pas sûr d'avoir réussi à utiliser la 1ere fonction, ou à défaut en interpréter les valeurs données.
Voici ce que j'ai inscrit : =couleurimage("aa") et j'obtiens 9737945 pour une couleur RVB de 217, 150, 148.
Le second code est génial et pratique, et va me faire gagnrer un temps certain !

Job et JB, bien que me doutant que vous n'en n'êtes pas fans, si vous pouviez prendre 5 mn pour expliquer vos codes, ce serait extra.

En tout cas merci et à bientôt.
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Résolu :Récupérer la couleur d'un shape

Pourquoi compliquer un problème simple

Rouge: 255
Vert : 0+(255*256)
Bleu : 0+0+(256*256*255)

Blanc: 255+(255*256)+(255*256*256)
Jaune: 255+(255*256)+0



JB
 

Pièces jointes

  • fonctionColoriageShape.xls
    66 KB · Affichages: 51
  • SansTitre.jpg
    29.8 KB · Affichages: 71
Dernière édition:

Calvus

XLDnaute Barbatruc
Re : Résolu :Récupérer la couleur d'un shape

Bonjour 00, Job, JB, le Forum,

Job, il y a des bêtes vicieuses, mais aussi des bêtes trop fortes !
Il n'y a qu'à voir de quoi est capable un baudet !
J'en ris jaune ! Et en plus il nous souhaite la pluie....

Moi je laisse tomber.
Je viendrai vous demander de l'aide car je ne comprends rien à vos codes.
Même si c'est très très très simple, et bien ça ne l'est pas forcément pour moi..

En tout cas je vous remercie tous et vous souhaite un excellent WE (enfin ce qu'il en reste...)

PS :
Vous voulez dire que les Shapes se sont glissées là à l'insu de votre plein gré

Il y en a vraiment beaucoup car c'est une carte vectorielle avec des milliards de bordures et de contour et de trucs à rendre fou!
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…