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-28T20:16:49+00:00

    Ah et puis avec Picture Format la possibilité de augmenter ou diminuer, contraste ou luminosité :
     IncrementBrightness
     IncrementContrast

    Dans le précédent message : on les fixe en valeur absolue.

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

    0 commentaires Aucun commentaire
  2. Anonyme
    2012-05-28T20:09:50+00:00

    Bonsoir

    Honnêtement je commence à m'y perdre.

    On a bien dans PictureFormat.EffectType
     (voir page MsoPictureEffectType, énumération)
    L'effet luminosité et contraste (3) et saturation (25 qui est en fait 24 dans l'explorateur d'objet)

    Code (j'ai gardé le delete à la fin pour les essais) : Sub Effets() Dim s As Shape Set myDocument = Worksheets(1) Set s = ActiveWorkbook.Worksheets(1).Shapes(1) With s.Fill.PictureEffects  .Insert(msoEffectSaturation).EffectParameters(1).Value = 0.5   Dim brightnessContrast As PictureEffect   Set brightnessContrast = .Insert(msoEffectBrightnessContrast)   brightnessContrast.EffectParameters(1).Value = 0.1  ' Luminosité   brightnessContrast.EffectParameters(2).Value = -0.3 ' Contraste    ' Remove all Picture effects.   While .Count > 0      .Delete (1)   Wend End With End Sub

    On peut aussi agir sur la luminosité et le contraste avec le PictureFormat

    With s.PictureFormat  .Brightness = 0.6  .Contrast = 0.5 End With

    Mais toujours pas de couleurs en vue.

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

    0 commentaires Aucun commentaire
  3. Anonyme
    2012-05-28T19:01:03+00:00

    > Geo, si déjà on peut agir sur la saturation et la luminosité, c'est déjà cela. L'idéal étant d'avoir un espace colorimétrique HLS avec lequel on maitrise également la teinte.

    Avec PictureFormat (en plus de la couleur de transparence) on contrôle la luminosité et le contraste , n'est pas plutôt cela que tu veux dire ? car il me semble que les effets appliquent les ombres, bordures, lumières biseaux, effets D3, etc....

    A+ Jean-Claude

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

    0 commentaires Aucun commentaire
  4. Anonyme
    2012-05-28T18:33:08+00:00

    > Recolorier une image par macro,

    Les effets permettent de modifier la saturation, l'éclaircissement et l'assombrissement.
    Pas le changement de couleur.
    Au temps pour moi.

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

    0 commentaires Aucun commentaire
  5. Anonyme
    2012-05-28T18:31:13+00:00

    > Geo : Oui, bien sûr, c'est Shapes, ce n'était pas un copier-coller.. j'ai tapé à la volée !.

    C'est sur PictureEffects que ça coince. et rien dans l'aide à ce sujet ni sur EffectParameters.

    >MicD, ...L'enregistreur de macro d'Excel 2010 ne donne aucun code pour les manipulations

    faites à l'écran. AIE AIE AIE.

    Alors là c'est un comble!, Microsoft ne l'aurait pas optimisé pour 2010. Et en passant par le menu contextuel Format de l'image > Recolorier, non plus ?

    -- tu me dis une image obligatoirement en BMP et je dis non, non, non, car j'ai une image au format jpg et elle se recolorise très bien en passant par le menu. De toutes façons une fois à l'écran elle ne devient plus qu'une matrice de pixels RVB, alors qu"elle soit en tif ou autre au départ, cela importe peu.

    .TransparencyColor = vbBlack

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

    ;-)  J'avais compris, rassure-toi !!! (je ne suis pas un newbie en la matière ;-), héhé

    Bon, les amis, je vous laisse pour l'insant et vous souhaite une bonne soirée.

    à+ Jean-Claude

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

    0 commentaires Aucun commentaire