IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Recopier la couleur d'une cellule dans un dessin [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 11
    Par défaut Recopier la couleur d'une cellule dans un dessin
    Bonjour,
    Je voudrais colorer des "shapes" de la même couleur que des cellules d'une feuille.

    en gros quelque chose du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Color=Range("A1").color
    activesheet.shapes("Dessin").fill.forecolor.RGB=color
    Mais comme les couleurs sont codées différemment dans la cellule et dans les "shapes", je ne sais pas comment convertir un code de couleur de cellule en code de couleur de shapes.
    quelle méthode utiliser (Color, Colorindex, RGB, autre) ?

    Merci de vos conseils avisés

    Patrick

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Février 2015
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : Février 2015
    Messages : 118
    Par défaut
    Bonjour,

    Tu es bien parti; essaye l'enregistreur de macros pour te donner des idées.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Dim color As Double
    color = Range("A1").Interior.color
    ActiveSheet.Shapes("Dessin").Fill.ForeColor.RGB = color
    Bonne continuation.

  3. #3
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 11
    Par défaut
    Merci OBO29,
    L'enregistreur n'enregistre pas les commandes pour le dessin. (en Excel 2007)

    En fait mon problème de fond était que j'ai des couleurs de cellules qui sont calculées par un format conditionnel, et .interior.color ne donne pas ces couleurs
    J'ai récupéré des procédures ici : http://www.cpearson.com/excel/CFColors.htm
    C'est un peu lourd , mais ça marche.

    Par contre je préfère quand même déclarer Color en Long et pas en Double, pour ce type d'instruction.

    le code devient:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    Sub Test
    Dim Color as long
    Color =  ColorOfCF(Range("A1"))   
    ActiveSheet.Shapes("Dessin").Fill.ForeColor.RGB  =  Color
    end sub
     
    Function ColorOfCF(Rng As Range) As Long
    ' Récupéré de http://www.cpearson.com/excel/CFColors.htm et simplifié
    Dim AC As Long
    AC = ActiveCondition(Rng)    '  ActiveCondition est pris dans le lien ci-dessus
    If AC = 0 Then
           ColorOfCF = Rng.Interior.color
    Else
           ColorOfCF = Rng.FormatConditions(AC).Interior.color
    End If
    End Function
    Maintenant ça marche bien
    Merci d'avoir analyser mon problème

    Patrick

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2003] Recopier la valeur d'une cellule dans une autre feuille au changement
    Par docjo dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 07/10/2010, 08h52
  2. Recopier la couleur d'un cellule dans une autre
    Par zakuli dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 28/10/2009, 18h24
  3. changer couleur d'une cellule dans un datagrid
    Par megaloplex dans le forum Flex
    Réponses: 7
    Dernier message: 11/06/2009, 15h33
  4. Modifier la couleur d'une cellule dans un TValueListEditor
    Par Xpmich dans le forum Composants VCL
    Réponses: 2
    Dernier message: 13/02/2009, 09h10
  5. Changer la couleur d'une cellule dans une table
    Par gbrion dans le forum WinDev
    Réponses: 4
    Dernier message: 26/04/2007, 22h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo