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 :

Changer la couleur suite a une formule [XL-2000]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 20
    Par défaut Changer la couleur suite a une formule
    Je n'y connais pas grand chose en code VBA mes je ses ce que je veux lol
    j'ai trouvé un code qui marche bien mes pas sur le résultat d'une formule
    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
     
       Private Sub Worksheet_Change(ByVal Target As Excel.Range)
         If Not Intersect(Target, Range("AB22:AB500")) Is Nothing Then
           With Target
             Select Case Target.Value
               Case Is < 0
                 Call Coloriser_cellule(Target, 1)
               Case Is = 0
                 Call Coloriser_cellule(Target, 0)
               Case Is = 1
                 Call Coloriser_cellule(Target, 6)
               Case Is > 1
                 Call Coloriser_cellule(Target, 1)
             End Select
           End With
         End If
       End Sub
     
       Public Function Coloriser_cellule(ByVal Target_cellule As Excel.Range, ByVal Couleur As Single)
           Target_cellule.Interior.ColorIndex = Couleur
           Range(Cells(Target_cellule.Row, Target_cellule.Column - 27), Cells(Target_cellule.Row, Target_cellule.Column - 6)).Interior.ColorIndex = Couleur
      End Function
    Alors explication plus détailler:
    quand il y a 1 dans la colonne AB couleur jaune
    quand il y a 0 dans la colonne AB sans couleur
    quand ses un autre numéros ses une erreur alors noir
    la couleur doit allais de la colonne A a la colonne V et la colonne AB (facultatif)
    Jusque la quand je tape 1 ou 0 le code marche très bien aucune erreur le seul problème ses que dans la colonne AB il y a une formule et la rien ne vas plus, sa ne marche pas.
    pour la mise en forme conditionnelle a évité j'ai 478 lignes et obliger le les reprendre 1/1 lol galère et lourd.
    A savoir la dernière valeur si sa peut aider est placer dans la colonne S

    Merci de vos réponses.

  2. #2
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Bonjour,
    Je ne suis pas sûr de bien comprendre on problème mais je vois plusieurs solution. Je dirais d'abord une mise en forme conditionnel que tu copie/colle en une fois sur tes 478 lignes (moins la ligne ou tu l'aura taper) pas obliger de les reprendre 1 à 1.

    Worksheetchange ne s'active que si tu modifie le contenu de la cellule pas la valeur du résultat de la formule.

    Tu peux faire quelque chose comme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    dim cel as range
    for each cel in range("TaZone")
    'le with ne sert a rien tu ne l'utilise pas
            Select Case cel.Value
               Case Is < 0
                 Call Coloriser_cellule(cel, 1)
               Case Is = 0
                 Call Coloriser_cellule(cel, 0)
               Case Is = 1
                 Call Coloriser_cellule(cel, 6)
               Case Is > 1
                 Call Coloriser_cellule(cel, 1)
             End Select
    next cel
    tu le met dans la macro de ton choix.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 20
    Par défaut
    Le problème que j'ai avec la mis en forme conditionnelle ses qu'il ne change pas le numéros de la ligne et vue que toutes les lignes sont indépendante je suis obligé de re taper le numéros de la ligne.

    pour le code j'ai exactement taper ça:
    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
    dim cel as range
    for each cel in range("AB22:AB500")
    'le with ne sert a rien tu ne l'utilise pas
            Select Case cel.Value
               Case Is < 0
                 Call Coloriser_cellule(cel, 1)
               Case Is = 0
                 Call Coloriser_cellule(cel, 0)
               Case Is = 1
                 Call Coloriser_cellule(cel, 6)
               Case Is > 1
                 Call Coloriser_cellule(cel, 1)
             End Select
    next cel
     
       Public Function Coloriser_cellule(ByVal Target_cellule As Excel.Range, ByVal Couleur As Single)
           Target_cellule.Interior.ColorIndex = Couleur
           Range(Cells(Target_cellule.Row, Target_cellule.Column - 27), Cells(Target_cellule.Row, Target_cellule.Column - 6)).Interior.ColorIndex = Couleur
      End Function
    Mes la il y a plus rien qui marche peut être que j'ai fait une gaffe!!!

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 20
    Par défaut
    OK sa marche nikel j'avais fait une boulette
    j'avais oublié :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    Merci à vous et de votre rapidité.

    Problème résolu.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 07/03/2014, 17h46
  2. Réponses: 2
    Dernier message: 09/09/2009, 14h08
  3. tableau : changer la couleur de toute une ligne
    Par Emcy dans le forum Mise en page CSS
    Réponses: 11
    Dernier message: 21/08/2008, 09h37
  4. Réponses: 3
    Dernier message: 15/05/2008, 10h30
  5. Réponses: 2
    Dernier message: 13/06/2007, 13h59

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