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

Excel Discussion :

Changer la couleur d'une forme liée à une cellule


Sujet :

Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Changer la couleur d'une forme liée à une cellule
    Bonjour,
    J'essaie de faire de la cartographie dans excel. J'aimerai faire évoluer les couleurs de ma carte à l'aide d'une zone de liste déroulante. Chaque date est liée à une cellule qui contient le nom d'une couleur( la couleur peut varier dans une même case). J'aimerai faire apparaître les couleurs sur la carte. Pour ce faire, la base de données contient dans la colonne T : les dates, dans la colonne U les couleurs du département du var, dans la colonne V les couleurs des alpes maritimes et la colonne W les couleurs du vaucluse. La liste déroulante détient la colonne des dates. Le choix de la liste déroulante donne une valeur unique pour tous les départements. cette valeur est ensuite transmise, à trois cellule qui vont faire sortir la couleur de chaque département. Par exemple, pour le 01/01/2012 à 03h00 : la cellule Q35 va donner la couleur orange pour le var, la cellule R35 va donner la couleur rouge pour les alpes maritimes et la cellule S35 va donner la couleur rouge pour le vaucluse. Le but est que la couleur de chaque cellule colore le département lié. Pouvez vous m'aider ?

    Je vous remercie par avance.
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé Avatar de jerome.vaussenat
    Homme Profil pro
    Formateur Bureautique
    Inscrit en
    Janvier 2011
    Messages
    1 629
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur Bureautique
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 629
    Points : 4 299
    Points
    4 299
    Par défaut
    Salut,

    je te propose une solution avec du VBA. Tout est dans la pièce jointe.

    Ci dessous le code pour information.
    Pour les puriste, oui je sais, les .select, c'est pas beau. Mais ici, j'évite des lignes trop longues.
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    Sub couleur()
    '
    ' couleur Macro
    ' déclaration des variables pour les trois départements
    Dim coul_Var As String
    Dim coul_AM As String
    Dim coul_Vaucluse As String
     
    'on stocke la couleur de la feuille dans la variable
    coul_Var = LCase(Range("q35").Value)
    coul_AM = LCase(Range("r35").Value)
    coul_Vaucluse = LCase(Range("s35").Value)
    'changement de la couleur pour les alpes maritime
        ActiveSheet.Shapes.Range(Array("Freeform 2395")).Select 'AM
        Select Case coul_Var
            Case Is = "orange"
                Selection.ShapeRange.Fill.ForeColor.RGB = RGB(255, 192, 0) 'orange
            Case Is = "rouge"
                Selection.ShapeRange.Fill.ForeColor.RGB = RGB(255, 0, 0) 'rouge
            Case Is = "vert"
                Selection.ShapeRange.Fill.ForeColor.RGB = RGB(0, 176, 80) 'vert
            Case Is = "jaune"
                Selection.ShapeRange.Fill.ForeColor.RGB = RGB(255, 255, 0)  'jaune
            Case Is = "violet"
                Selection.ShapeRange.Fill.ForeColor.RGB = RGB(112, 48, 160)  'violet
        End Select
    'changement de la couleur pour le Var
        ActiveSheet.Shapes.Range(Array("Freeform 2399")).Select 'var
        Select Case coul_AM
            Case Is = "orange"
                Selection.ShapeRange.Fill.ForeColor.RGB = RGB(255, 192, 0) 'orange
            Case Is = "rouge"
                Selection.ShapeRange.Fill.ForeColor.RGB = RGB(255, 0, 0) 'rouge
            Case Is = "vert"
                Selection.ShapeRange.Fill.ForeColor.RGB = RGB(0, 176, 80) 'vert
            Case Is = "jaune"
                Selection.ShapeRange.Fill.ForeColor.RGB = RGB(255, 255, 0)  'jaune
            Case Is = "violet"
                Selection.ShapeRange.Fill.ForeColor.RGB = RGB(112, 48, 160)  'violet
        End Select
    'changement de la couleur pour le vaucluse
        ActiveSheet.Shapes.Range(Array("Freeform 2404")).Select 'vaucluse
        Select Case coul_Vaucluse
            Case Is = "orange"
                Selection.ShapeRange.Fill.ForeColor.RGB = RGB(255, 192, 0) 'orange
            Case Is = "rouge"
                Selection.ShapeRange.Fill.ForeColor.RGB = RGB(255, 0, 0) 'rouge
            Case Is = "vert"
                Selection.ShapeRange.Fill.ForeColor.RGB = RGB(0, 176, 80) 'vert
            Case Is = "jaune"
                Selection.ShapeRange.Fill.ForeColor.RGB = RGB(255, 255, 0)  'jaune
            Case Is = "violet"
                Selection.ShapeRange.Fill.ForeColor.RGB = RGB(112, 48, 160)  'violet
        End Select
    ' a la fin retour dans la feuille
        Range("R12").Select
    End Sub
    Fichiers attachés Fichiers attachés
    Jérôme

    " Je pense donc je suis. Tu es donc j'apprends ". (GCM)

    Si ce message vous à aidé, merci de cliquer sur . Si ce message est résolu, cliquez sur .

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Bonsoir jerome.vaussenat,
    Je te remercie, pour l'aide que tu m'as apporté. Ton code est très bien expliqué et il va m'être d'une grande aide.

  4. #4
    Expert confirmé Avatar de jerome.vaussenat
    Homme Profil pro
    Formateur Bureautique
    Inscrit en
    Janvier 2011
    Messages
    1 629
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur Bureautique
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 629
    Points : 4 299
    Points
    4 299
    Par défaut
    Au plaisir.
    Jérôme

    " Je pense donc je suis. Tu es donc j'apprends ". (GCM)

    Si ce message vous à aidé, merci de cliquer sur . Si ce message est résolu, cliquez sur .

Discussions similaires

  1. Réponses: 6
    Dernier message: 10/06/2010, 15h31
  2. CF 1.0 modifier une valeur d'une form a une autre
    Par maxmarie dans le forum Windows Mobile
    Réponses: 2
    Dernier message: 11/09/2007, 18h09
  3. une form ds une form ?
    Par Mihalis dans le forum Delphi
    Réponses: 2
    Dernier message: 26/01/2007, 06h55
  4. Intégrer une Form dans une Form principale
    Par rol72 dans le forum C++Builder
    Réponses: 3
    Dernier message: 27/09/2006, 14h20
  5. Réponses: 3
    Dernier message: 16/01/2006, 16h02

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