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 :

Colorier une cellule en fonction de tests sur des dates


Sujet :

Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Colorier une cellule en fonction de tests sur des dates
    Bonsoir,

    Débutant en VBA, mais ayant déjà fait un peu de programmation en C on m'a demandé de réaliser un fichier sous excel.


    Je dispose de 3 dates ,Start date (rentrée par utilisateur) Current Date (obtenue avec la fonction aujourd'hui) et Target Date (rentrée par utilisateur). Ces trois dates sont rangées respectivement dans les variables Start, Current et Target
    L'idée serait qu'en fonction de ces trois date, une cellule se colorie plus loin
    - Si Start < Current et si Target> Current alors la cellule se colorie en vert
    -Si Start > Current alors colorier cellule en rouge
    - Si Current > Target d'un mois ou moins alors colorier cellule en jaune
    - Si Current >Target de plus d'un mois, alors colorier en rouge

    J'ai besoin de colorier plusieurs cellule, d'ou ma boucle for.
    J'ai codé ceci pour le moment, mais j'ai des erreurs. Je colorie bien les cellules mais celles ci ne sont pas de la bonne couleur

    Voici le code :

    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
    58
    59
    60
    61
    62
    63
    64
    65
    Sub colorier()
    Dim cpt As Integer
     
    For cpt = 3 To 13
    color_1 = ""
    Start = Format(Range("H" & cpt).Value, "dd.mm.yyyy")
    Target = Format(Range("I" & cpt).Value, "dd.mm.yyyy")
    Current = Format(Range("J" & cpt).Value, "dd.mm.yyyy")
    color_1 = "red"
     
    If Start < Current Then
        If Target > Current Then
        'MsgBox cpt
        color_1 = "green"
        ElseIf Target < Current Then
            MsgBox "test"
            test = Format(Range("H" & cpt).Value, "mm")
            Test2 = Format(Range("J" & cpt).Value, "mm+1")
            If test > Test2 Then
            color_1 = "yellow"
            MsgBox "cool"
     
        End If
        End If
    Else: color_1 = "red"
    End If
     
     'MsgBox "cool"
    'test = Format(Range("H" & cpt).Value, "mm")
    'Test2 = Format(Range("J" & cpt).Value, "mm+1")
    'If test > Test2 Then
     '   color_1 = "yellow"
    'End If
     
    Select Case (color_1)
     
        Case "green"
        Range("K" & cpt).Select
        Selection.Interior.Color = RGB(0, 224, 0)
     
     
        Case "yellow"
        Range("K" & cpt).Select
        Selection.Interior.Color = RGB(255, 255, 0)
        'MsgBox cpt
     
        Case "red"
        Range("K" & cpt).Select
        Selection.Interior.Color = RGB(255, 0, 0)
     
     
    End Select
    Sheets("Action Plan Tracking").Range("C" & cpt) = Current
    'Sheets("Action Plan Tracking").Range("B" & cpt) = cpt
    Sheets("Action Plan Tracking").Range("D" & cpt) = Start
    Sheets("Action Plan Tracking").Range("E" & cpt) = Target
    Sheets("Action Plan Tracking").Range("C12") = Current
    If Target > Current Then
    Sheets("Action Plan Tracking").Range("B" & cpt) = "Sup"
    End If
     
    Next cpt
     
     
    End Sub

    Merci d'avance pour votre aide

  2. #2
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Tu peux t'en sortir sans vba avec les mises en forme conditionnelles.
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Merci pour votre réponse, mais je n'ai pas trouvé comment mettre en place une mise en forme conditionnelle avec autant de "conditions"

    Cdt

  4. #4
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Quelle est ta version d'Excel?
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    2007

    Merci

  6. #6
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Sélectionne K3:K13

    MFC

    Utiliser une formule....

    Formule 1 Couleur Verte

    Formule 2 Couleur rouge

    Formule 3 Couleur jaune

    Formule 4 Couleur rouge
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    Merci pour les formules ! Cela avance
    Mais il semblerait que j'ai un souci ( peut être dans les priorités entre les formules, ou bien de format de date)
    En respectant cette ordre de priorité :
    Couleur verte=> prio 1 (tout en haut)
    Couleur rouge => prio 2 =$J4-$I4>30
    Couleur jaune => prio 3
    Couleur rouge => prio 4 =$H4<$J4

    Toutes mes cellules se colorient actuellement en jaune, alors que la condition n'est pas vraie : =$J4-$I4<=30, avec en I4= 30/11/2014 et J4 = 27/04/2014

    Merci encore pour votre soutient
    CDT

    Edit => cela marche en fait, j'ai avais fait une erreur.
    Merci beaucoup

  8. #8
    Nouveau Candidat au Club
    Femme Profil pro
    v
    Inscrit en
    Mars 2015
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : v
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2015
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Remplissage cellule en fonction du remplissage d'un autre cellule
    Bonjour à tous,

    j'ai besoin de votre aide...
    Comment faire pour colorer une cellule en fonction de la couleur d'une autre cellule ?
    Je vous explique, j'ai mis sur ma colonne G une mise en forme conditionnelle pour les valeurs en double mais cette colonne doit absolument être masquée donc j'aimerai que la colonne F se colorie si une ligne dans la colonne G est un doublon.

    Merci de votre aide,

    Pierrette

  9. #9
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par kevinadavina Voir le message
    Comment faire pour colorer une cellule en fonction de la couleur d'une autre cellule ?
    Tu ne peux pas.
    Du moins, pas directement.

    Citation Envoyé par kevinadavina Voir le message
    Je vous explique, j'ai mis sur ma colonne G une mise en forme conditionnelle pour les valeurs en double mais cette colonne doit absolument être masquée donc j'aimerai que la colonne F se colorie si une ligne dans la colonne G est un doublon.
    Si, en plus, la couleur dépend du résultat d'un test d'une MFC, alors c'est encore plus compliqué parce que même en VBA, je ne pense pas (à ma connaissance) que ce soit possible de connaitre la couleur résultante.

    A moins qu'il soit possible d'indiquer dans une mise en forme conditionnelle la condition vérifiant qu'un autre ensemble de cellules contient des doublons. Mais je doute que ce soit possible.

    J'ai bien une ou deux solutions en tête mais elles sont compliquées.

    Par exemple tu crées une colonne supplémentaire dans laquelle tu mets dans chaque cellule une formule comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(ESTNA(RECHERCHEV($A1;$A2:$A$8;1));0;1)
    Qui te permet de savoir s'il y a des doublons dans la colonne A.
    Ensuite, dans la colonne que tu veux colorer, tu mets une mise en forma conditionnelle qui modifie la couleur si la somme de cette nouvelle colonne est supérieure à 0.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

Discussions similaires

  1. [XL-2007] Colorier une cellule en fonction de l'activecell
    Par Louax dans le forum Excel
    Réponses: 4
    Dernier message: 14/05/2015, 20h37
  2. [XL-2010] Colorier une cellule en fonction de critéres multiples
    Par diomedea dans le forum Excel
    Réponses: 6
    Dernier message: 11/12/2014, 18h09
  3. [XL-2007] Colorier une cellule en fonction du resultat d une formule
    Par facteur dans le forum Excel
    Réponses: 5
    Dernier message: 10/06/2014, 16h35
  4. colorier une cellule en fonction de l'utilisateur qui l'a modifiée
    Par rugbyman dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/02/2012, 01h23
  5. colorier une cellule en fonction de plusieurs conditions
    Par antoine2933 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 05/07/2011, 12h20

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