EXCEL 2007 - Recolorier image par macro

Anonyme
2012-05-27T14:07:10+00:00

Bonjour,

Je voudrais, à l'aide d'une macro, pouvoir recolorier une image avec une couleur de mon choix tel que l'on peut le faire en passant par le menu Format -> Recolorier -> Autres Variations.

L'enregistreur de macro ne fonctionnant pas pour les Shapes avec Excel 2007, je désirerai connaitre le code permettant de le faire.

Pour passer en ton de gris j'utilise actuellement : PictureFormat.ColorType = msoPictureGrayscale. Mais ColorType n'offre que peu de possibilités et je souhaite pouvoir utiliser n'importe quelle couleur.

Si une personne possédant Excel 2010 pouvait me dépanner en enregistrant la macro je lui en serai très reconnaissant.

Merci d'avance

Microsoft 365 et Office | Excel | Pour la maison | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

31 réponses

  1. Anonyme
    2012-05-28T17:56:33+00:00

    > With Sheets("AZIMUT").Shape("imgPANO").Fill.PictureEffects

    C'est shapes et non shape

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  2. Anonyme
    2012-05-28T17:44:58+00:00

    > MichD, merci pour le fichier, mais, désolé, cela ne correspond pas à mon souhait.

    Je ne souhaite pas, dans ce cas, agir sur la transparence, ça je connais.

    Mais je le répète coloriser l'image autrement que par  msoPictureGrayscale.

    Je ne vois pas pourquoi tu t'embêtes à déclarer K pour lui attribuer la valeur d'une constante, c'est utiliser des ressources pour rien (je ne dis pas cela méchamment, bien sûr)

    .ColorType = msoPictureAutomatic sufift

    A noter que .Fill.Visible = True est superflu. Visble est à True par défaut.

    Jean-Claude

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  3. Anonyme
    2012-05-28T17:24:57+00:00

    Dans la procédure, tu peux remplacer ceci :

    .TransparencyColor = vbWhite

    PAR

    .TransparencyColor = vbBlack

    Et observe ce qui se passe, tu devrais commencer à comprendre!
    ;-)

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  4. Anonyme
    2012-05-28T17:24:40+00:00

    > MicD : Oui, et également dles valeurs RGB ce qui est plus précis.

    > Geo le Tourangeau : ben c'est effectivement ce que j'ai déjà fait, mais pas dans une feuille cachée, dans la même feuille. L'image de nuit est superposée à l'image de jour et passe de Visible à False suivant les besoins.

    Mais le but de la manœuvre est d'éviter justement d'avoir trop d'images, surtout qu'en fait c'est la même, d'où l'essai de colorisation de l'image de base.

    With Sheets("AZIMUT").Shape("imgPANO").Fill.PictureEffects

    me retourne un message d'erreur : Propriété ou méthode non gérée par cet objet.

    En tous cas merci à vous deux de vous intéresser à mon problème.

    Bonne soirée,

    Jean-Claude

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  5. Anonyme
    2012-05-28T17:18:12+00:00

    Je t'ai fait un petit fichier exemple :   http://cjoint.com/?BECtrqrvk2p

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire