Modifier propriété Recolor objet Shape ?

Creepy

XLDnaute Accro
Bonjour tout le monde,

J'ai un objet shape dans une feuille pour lequel je voudrais modifier la couleur via VBA.
Dans les menus Excel. Je vais dans l'item RECOLOR.

Mais en code impossible de trouver la propriété.

J'ai réussi à modifer le brightness et le contrast, mais impossible de modifier la propriété recolor.

Quelqu'un sait-il quelle est cette propriété ?

A défaut auriez-vous un code pour lister toutes les valeurs de toutes les propriétés d'un objet Shape dans une feuille Excel ? Ainsi je ferais une prémière passe, modifierais manuellement la couleur de l'objet via le menu recolor et rejouerais la macro. Je pourrais isoler les propriétés qui ont changé.

Merci d'avance

Creepy
 

Creepy

XLDnaute Accro
Re : Modifier propriété Recolor objet Shape ?

Hello,

Bien sûr avant de poser la question j'ai balayé l'aide et les propriétés de l'objet via les espions ! CE que je voudrais c'est lister les propriétés et leurs valeurs pour identifer celle qui change !

Merci

Creepy
 

Modeste geedee

XLDnaute Barbatruc
Re : Modifier propriété Recolor objet Shape ?

Bonsour®
J'ai un objet shape dans une feuille pour lequel je voudrais modifier la couleur via VBA.
Dans les menus Excel. Je vais dans l'item RECOLOR.

Mais en code impossible de trouver la propriété.

J'ai réussi à modifer le brightness et le contrast, mais impossible de modifier la propriété recolor.

Quelqu'un sait-il quelle est cette propriété ?
Creepy
:confused::confused:
sous excel 2003 il n'existe pas de propriete Recolor ...
ms-help://MS.EXCEL.DEV.12.1036/EXCEL.DEV/content/HV10089220.htm

voir du coté de la propriété Fill

Code:
ActiveSheet.Shapes(1).Fill.ForeColor.RGB = RGB(255, 0, 0)
 

Creepy

XLDnaute Accro
Re : Modifier propriété Recolor objet Shape ?

RE All,

Merci pour vos réponses, mais :

1. Le coup du sélection j'ai essayé et je n'ai rien obtenu de concret.
2. La propriété fill j'ai essayé mais rien ne se passe. Peut être un bug, ce ne serait pa sla première fois que VBA ne fonctionne pas ...

D'autres idées ?

Merci

Creepy
 

Modeste geedee

XLDnaute Barbatruc
Re : Modifier propriété Recolor objet Shape ?

Bonsour®
il faut lire les réponses notament essayer le code fourni !!!
VB:
ActiveSheet.Shapes(1).Fill.ForeColor.RGB = RGB(255, 0, 0)

Ce lien n'existe plus

Membres de l'objet ShapeRange

Cet objet représente une plage de formes, c'est-à-dire un ensemble de formes dans un document.

Méthodes





Nom

Description

Align Cette méthode aligne les formes contenues dans la plage de formes spécifiée.
Apply Cette méthode s'applique à la mise en forme de la forme spécifiée, copiée à l'aide de la méthode PickUp.
Delete Cette méthode supprime l'objet.
Distribute Cette méthode distribue les formes horizontalement ou verticalement dans la plage des formes spécifiée.
Duplicate Cette méthode duplique l'objet et renvoie une référence à la nouvelle copie.
Flip Cette méthode retourne la forme spécifiée horizontalement ou verticalement.
Group Cette méthode groupe les formes dans la plage spécifiée.
IncrementLeft Cette méthode déplace la forme spécifiée horizontalement selon le nombre de points spécifiés.
IncrementRotation Cette méthode modifie la rotation de la forme spécifiée autour de l'axe Z selon le nombre de degrés spécifiés. Utilisez la propriété Rotation pour définir la rotation absolue de la forme.
IncrementTop Cette méthode déplace la forme spécifiée verticalement selon le nombre de points spécifiés.
Item Cette méthode renvoie un seul objet d'une collection.
PickUp Cette méthode copie la mise en forme de la forme spécifiée. Utilisez la méthode Apply pour appliquer la mise en forme copiée à une autre forme.
Regroup Cette méthode reforme le groupe auquel la plage de formes spécifiée appartenait auparavant. Elle renvoie les formes regroupées sous la forme d'un seul objet Shape.
RerouteConnections Cette méthode redirige tous les connecteurs rattachés à la forme spécifiée ; si la forme spécifiée est un connecteur, elle est redirigée.
ScaleHeight Cette méthode met à l'échelle la hauteur de la forme selon un facteur spécifié. Pour les images et les objets OLE, vous pouvez indiquer si vous souhaitez mettre la forme à l'échelle par rapport à la taille d'origine ou actuelle. Les formes qui ne sont ni des images ni des objets OLE sont toujours mises à l'échelle par rapport à leur hauteur actuelle.
ScaleWidth Cette méthode met à l'échelle la largeur de la forme selon un facteur spécifié. Pour les images et les objets OLE, vous pouvez indiquer si vous souhaitez mettre la forme à l'échelle par rapport à la taille d'origine ou la taille actuelle. Les formes qui ne sont ni des images ni des objets OLE sont toujours mises à l'échelle par rapport à la largeur actuelle.
Select Cette méthode sélectionne l'objet.
SetShapesDefaultProperties Cette méthode fait de la mise en forme de la forme spécifiée la mise en forme par défaut de la forme.
Ungroup Cette méthode dissocie toutes les formes groupées d'une forme ou d'une plage de formes spécifiée. Elle dissocie les images et les objets OLE d'une forme ou d'une plage de formes spécifiée.
ZOrder Cette méthode amène la forme spécifiée devant ou derrière d'autres formes de la collection (c'est-à-dire qu'elle modifie la position de la forme dans l'ordre de plan).

Propriétés

Nom

Description

Adjustments Renvoie un objet Adjustments qui contient des valeurs de réglage pour tous les ajustements dans la forme spécifiée. Elle s'applique à un objet ShapeRange quelconque qui représente une forme automatique, un objet WordArt ou un connecteur.
AlternativeText Cette propriété renvoie ou définit la chaîne de texte descriptif (de remplacement) d'un objet ShapeRange lors de l'enregistrement de l'objet dans une page Web. Type de données String en lecture-écriture.
Application Utilisée sans qualificateur d'objet, cette propriété renvoie un objet Application qui représente l'application Microsoft Excel. Lorsqu'elle est utilisée avec un qualificateur d'objet, elle renvoie un objet Application représentant l'application ayant créé l'objet spécifié (vous pouvez utiliser cette propriété avec un objet OLE Automation qui renvoie l'application d'origine de cet objet). En lecture seule.
AutoShapeType Renvoie ou définit le type de forme pour l'objet Shape ou ShapeRange spécifié, qui doit représenter une forme automatique différente d'un trait, d'une forme libre ou d'un connecteur. Type de données MsoAutoShapeType en lecture-écriture.
BackgroundStyle Cette propriété renvoie ou définit le style d'arrière-plan. MsoBackgroundStyleIndex en lecture-écriture.
BlackWhiteMode Cette propriété renvoie ou définit une valeur qui indique comment la forme spécifiée s'affiche lorsque la présentation est affichée en mode noir et blanc. Type de données MsoBlackWhiteMode en lecture-écriture.
Callout Renvoie un objet CalloutFormat qui contient des propriétés de mise en forme de légende pour la forme spécifiée. Elle s'applique à un objet ShapeRange qui représente des traits de légende. Type de données en lecture seule.
Chart Cette propriété renvoie un objet Chart qui représente le graphique contenu dans la plage de formes. En lecture seule.
Child Renvoie la valeur msoTrue si la forme spécifiée est une forme enfant ou si toutes les formes contenues dans une plage de formes sont des formes enfants du même parent. Type de données MsoTriState en lecture seule.
ConnectionSiteCount Cette propriété renvoie le nombre de sites de connexion sur la forme spécifiée. Type de données Long en lecture seule.
Connector Cette propriété a la valeur True si la forme spécifiée est un connecteur. Type de données MsoTriState en lecture seule.
ConnectorFormat Renvoie un objet ConnectorFormat contenant des propriétés de mise en forme de connecteur. S'applique à un objet ShapeRange qui représente des connecteurs. Type de données en lecture seule.
Count Cette propriété renvoie une valeur de type Long qui représente le nombre d'objets de la collection.
Fill Renvoie un objet FillFormat pour une forme spécifiée ou un objet ChartFillFormat pour un graphique spécifié qui contient des propriétés de mise en forme de remplissage de la forme ou le graphique. En lecture seule.
Glow Cette propriété renvoie un objet GlowFormat pour un graphique spécifié qui contient des propriétés de mise en forme d'effet de lumière pour la plage de formes. En lecture seule.
GroupItems Cette propriété renvoie un objet GroupShapes qui représente les formes individuelles dans le groupe spécifié. Utilisez la méthode Item de l'objet GroupShapes pour renvoyer une seule forme à partir du groupe. Cette propriété s'applique à un objet ShapeRange qui représente les formes groupées. Type de données en lecture seule.
HasChart Cette propriété renvoie une valeur indiquant si une plage de formes contient un graphique. MsoTriState en lecture seule.
Height Cette propriété renvoie ou définit une valeur de type Single qui représente la hauteur de l'objet, estimée en points.
HorizontalFlip Cette propriété a la valeur True si la forme spécifiée est retournée autour de l'axe horizontal. Type de données MsoTriState en lecture seule.
ID Cette propriété renvoie une valeur de type Long qui représente le type d'objet spécifié.
Left Cette propriété renvoie ou définit une valeur de type Single qui représente la distance en points entre le bord gauche de l'objet et le bord gauche de colonne A (d'une feuille de calcul) ou le bord gauche de la zone de graphique (dans un graphique).
Line Cette propriété renvoie un objet LineFormat qui contient des propriétés de mise en forme de trait pour la forme spécifiée. (Pour un trait, l'objet LineFormat représente le trait proprement dit ; pour une forme avec une bordure, l'objet LineFormat représente la bordure). Type de données en lecture seule.
LockAspectRatio Renvoie la valeur True si la forme spécifiée conserve ses proportions d'origine lorsque vous la redimensionnez. Elle renvoie la valeur False si vous pouvez modifier la hauteur et la largeur de la forme indépendamment l'une de l'autre lorsque vous la redimensionnez. Type de données MsoTriState en lecture-écriture.
Name Cette propriété renvoie ou définit une valeur de type String qui représente le nom de l'objet.
Nodes Cette propriété renvoie une collection ShapeNodes qui représente la description géométrique de la forme spécifiée.
Parent Cette propriété renvoie l'objet parent de l'objet spécifié. En lecture seule.
ParentGroup Cette propriété renvoie un objet Shape qui représente la forme du parent ordinaire d'une forme enfant ou d'une plage de formes enfant.
PictureFormat Renvoie un objet PictureFormat qui contient des propriétés de mise en forme d'image pour la forme spécifiée. Elle s'applique à un objet Shape qui représente des images ou des objets OLE. Type de données en lecture seule.
Reflection Renvoie un objet ReflectionFormat pour une plage de formes spécifiée qui contient des propriétés de mise en forme de reflets pour cette plage de formes. Propriété en lecture seule.
Rotation Cette propriété renvoie ou définit la rotation de la forme en degrés. Type de données Single en lecture-écriture.
Shadow Cette propriété renvoie un objet en lecture seule ShadowFormat qui contient des propriétés de mise en forme de l'ombre pour la ou les formes spécifiées.
ShapeStyle Cette propriété renvoie ou définit une valeur MsoShapeStyleIndex qui représente le style de forme de la plage de formes. En lecture/écriture.
SoftEdge Renvoie un objet SoftEdgeFormat pour une plage de formes spécifiée qui contient des propriétés de mise en forme de bordures arrondies pour cette plage de formes. Propriété en lecture seule.
TextEffect Cette propriété renvoie un objet TextEffectFormat qui contient les propriétés de mise en forme des effets de texte de la forme spécifiée. Type de données en lecture seule.
TextFrame Cette propriété renvoie un objet TextFrame contenant les propriétés d'alignement et d'ancrage de la forme spécifiée. Type de données en lecture seule.
TextFrame2 Renvoie un objet TextFrame2 qui contient une mise en forme de texte pour la plage de formes spécifiée. Propriété en lecture seule.
ThreeD Cette propriété renvoie un objet ThreeDFormat qui contient des propriétés de mise en forme des effets 3D pour la forme spécifiée. Type de données en lecture seule.
Top Cette propriété renvoie ou définit une valeur de type Single qui représente la distance en points entre le bord supérieur de la forme la plus haute dans la plage de formes et le bord supérieur de la feuille de calcul.
Type Cette propriété renvoie une valeur MsoShapeType qui représente le type de forme.
VerticalFlip Cette propriété a la valeur True si la forme spécifiée est retournée autour de l'axe vertical. Type de données MsoTriState en lecture seule.
Vertices Cette propriété renvoie les coordonnées des sommets de la forme libre spécifiée (et les points de commande des courbes de Bézier) sous la forme de paires de coordonnées. Vous pouvez utiliser le tableau renvoyé par cette propriété comme argument de la méthode AddCurve ou AddPolyLine. Type de données Variant en lecture seule.
Visible Cette propriété renvoie ou définit une valeur MsoTriState qui détermine la visibilité de l'objet. Type de données en lecture-écriture.
Width Cette propriété renvoie ou définit une valeur de type Single qui représente la largeur de l'objet, estimée en points.
ZOrderPosition Cette propriété renvoie la position de la forme spécifiée dans l'ordre de superposition. Type de données Long en lecture seule.
 

Creepy

XLDnaute Accro
Re : Modifier propriété Recolor objet Shape ?

RE Bonjour All,

@Modeste geedee : J'ai lu la réponse et n'ai pas essayé le code l'ayant déjà fait hier. Cela change la couleur de fonds du shapes. Certes c'est pas logique, cela devrait modifier la couleur principale et non le fonds, mais c'est le cas.

@MJ13 : Que dire de plus. Je ne peux pas mettre de fichier exemple, car c'est interdit dans ma boite. Je veux bien recommencer mon explication :

J'ai un Shape type picture, representant un thermomètre. Je veux changer la couelur de ce thermomètre en fonction d'une valeur par code.
J'arrive à le faire manuellement quand je séléectionne mon shape via le menu excel : Picture tools>Format>Recolor.

Mais je n'arrive pas àreproduire cette méthode manuelle via code. Cela ne fonctinne pas. Je me suis pris la tête dessus 3h hier, sans succès. J'ai, comme l'évoque Modeste geedee, joué avec la propriété fill, mais sans résultats.

Ce que je veux c'est reproduire en VBA la manipulation "manuelle". A noter que l'enregistruer de macro est vide :mad:

En espérant avoir été plus précis

Creepy
 

Modeste geedee

XLDnaute Barbatruc
Re : Modifier propriété Recolor objet Shape ?

Bonsour®
J'ai un Shape type picture, representant un thermomètre. Je veux changer la couelur de ce thermomètre en fonction d'une valeur par code.
J'arrive à le faire manuellement quand je séléectionne mon shape via le menu excel : Picture tools>Format>Recolor.

:( il s'agit donc d'un objet picture !!!

en effet via les menus cela fonctionne...
mais il me semble que cette fonctionnalité n'est pas implanté pour Excel 2003 (que tu as déclaré utiliser : profil)

Par ailleurs depuis Excel 2007 et vis-à-vis de VBA (enregistreur, implémentation des méthodes et propriétés ) il y ait décalages, manquements et incohérences avec les menus ...
:(

voir ce fil à ce sujet ...
EXCEL 2007 - Recolorier image par macro - Microsoft Community
 

Dranreb

XLDnaute Barbatruc
Re : Modifier propriété Recolor objet Shape ?

Bonjour.
Si ça peut aider, Fill.ForeColor est un objet de type ColorFormat.
Voici un code qui a résolu une demande pour une ellipse qui devait passer en rouge avant d'installer une formule puis en bleu avant de l'effacer :
VB:
Sub Ellipse1_Clic()
Dim Coul As ColorFormat
Set Coul = ActiveSheet.Shapes("Ellipse 1").Fill.ForeColor
If Coul.RGB <> &HFF& Then
   ActiveSheet.[B6].FormulaR1C1 = "=MAX(R[-5]C2:R[-5]C67)"
   Coul.RGB = &HFF&
Else
   ActiveSheet.[B6].ClearContents
   Coul.RGB = &HFF8080
   End If
End Sub
 

Statistiques des forums

Discussions
312 331
Messages
2 087 353
Membres
103 528
dernier inscrit
hplus