Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

execution macro?

  • Initiateur de la discussion Initiateur de la discussion kytoo
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

K

kytoo

Guest
Bonjour,

voila, j'ai une macro qui permet de changer la couleur d'une cellule en fonction de la valeure de la cellule elle-meme.

Ca marche très ca .. c'est dit 🙂

Par contre, je ne sais pas comment faire pour que lorsque la valeur de la cellule change, la couleure change aussi....
Pourquoi je ne le fait pas en Mis en forme conditionnelle?
Parce que j'ai besoin de plus que 3 couleurs 🙂

Ma macro :
Sub Color()
Dim C As Range
Dim Plage As Range
For Each C In Range("c2:c200")
If C.Value = "Critique" Then
C.Interior.ColorIndex = 3
End If
If C.Value = "Majeure" Then
C.Interior.ColorIndex = 45
End If
If C.Value = "Mineure" Then
C.Interior.ColorIndex = 4
End If
If C.Value = "IR" Then
C.Interior.ColorIndex = 6
End If
Next
End Sub

vous trouverez un exemple (fichier excel).
C'est la colonne C qui est en question.

Merci a vous 🙂
 

Pièces jointes

Re : execution macro?

Bonsoir,

Remplace ta macro Color par les lignes suivantes:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Intersect(Target, Range("C2:C200")) Is Nothing Then
    Select Case Target
        Case "Critique": Target.Interior.ColorIndex = 3
        Case "Majeure": Target.Interior.ColorIndex = 45
        Case "Mineure": Target.Interior.ColorIndex = 4
        Case "IR": Target.Interior.ColorIndex = 6
        'pour tous les autres cas
        Case Else: Target.Interior.ColorIndex = xlColorIndexAutomatic
        
    End Select
 End If
End Sub
35 modules, 1 par macro, C'est pas trop??????????????

Tu peux réunir toutes tes macros dans un seul module.
A+
bonjour Gibe🙂
 
Re : execution macro?

Bonjour,

merci pour les réponses... je test ca ASAP et vous tiens informé.
Concernant les 35 modules.. oui je sais, mais je n'ai posté qu'un extrait du fichier.
C'est un dashboard dans lequel je calcule des indicateurs différents. (astreinte, gestion anomalies, etc...)..
et j'ai beaucoup... beaucoup de d'indicateurs a calculer.....

Voili voilou
 
Re : execution macro?

Hello,

merci beaucoup ... ca marche Nickel 🙂

Puis-je abuser en posant une question complémentaire ??? allez, je me lache 🙂

Auriez vous un idée avec pour départ ce même script, pour voir coditionné la couleur un valeure numérique.. je m'explique.
si < 1 alors rouge
si = 1 alors Bleu
SI > 1 alors vert

@++ et encore merci 🙂
 
Re : execution macro?

Bonjour,

Code:
Select Case Target.Value
     Case <1 
     Case = 1
     Case > 1
End Select

Et regarder l'aide en ligne sur l'instruction de test Select Case.
tu apprendras ainsi à t'en servir.

A+
 
Re : execution macro?

hello,

merci ca marche super bien....
mais voila... j'ai regarder dans l'aide intersect, select case, etc.. et je n'arrives pas a une nouvelle évolution que je souhaites faire....

Voila.. je souhaites vérifier la colonne B (critique, Majeure, mineure, etc...) en fonction de la cellule en colonne B et du resultat de la colonne C ( 1, 2, 3 etc...) alors la colonnes C sera rouge ou verte, etc....

mon code en est a ce stade.. mais ca ne marche po 🙁

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("T2:T200")) Is Nothing Then
Select Case Target.Value
Case Is > 1: Target.Interior.ColorIndex = 3
Case Is = 1: Target.Interior.ColorIndex = 4
Case Is = 0: Target.Interior.ColorIndex = 2
'pour tous les autres cas
Case Else: Target.Interior.ColorIndex = xlColorIndexAutomatic

End Select
End If
If Not Intersect(Target, Range("B2:B200")) Is Nothing Then
Select Case Target
Case "Critique": Target.Interior.ColorIndex = 3
Case "Majeure": Target.Interior.ColorIndex = 45
Case "Mineure": Target.Interior.ColorIndex = 4
Case "IR": Target.Interior.ColorIndex = 6
Case "OR": Target.Interior.ColorIndex = 23
'pour tous les autres cas
Case Else: Target.Interior.ColorIndex = xlColorIndexAutomatic
End Select
End If
If Not Intersect(Target, Range("B2:B200")) Is Nothing Then
Select Case Target
Case "Critique":
If Not Intersect(Target, Range("U2:U200")) Is Nothing Then
Select Case Target.Value
Case Is > 10: Target.Interior.ColorIndex = 3
Case Is = 10: Target.Interior.ColorIndex = 4
Case Is = 0: Target.Interior.ColorIndex = 2
'pour tous les autres cas
Case Else: Target.Interior.ColorIndex = xlColorIndexAutomatic
End Select
End If
Case Else: Target.Interior.ColorIndex = xlColorIndexAutomatic
End Select
End If

End Sub


En esperant pouvoir retrouver de l'aide 🙂
@+++
 
Re : execution macro?

Re bonjour,

A mon avis si tu veux de l'aide, il faut t'y prendre un peu mieux:

1 - utiliser la baliser
Code:
 dans les post ( le # dans la barre d'outil d'edition avancée) cela rendrait les choses plus faciles à lire, si tu les aèrent en même temps
 
2 - tu nous parles de colonne B Et C et dans ce que tu nous donnes on voit B et U?
 
3 - peut-être qu'un fichier exemple serait bienvenu. Non?
 
Mais bon d'après ce que je pense comprendre:
 [CODE]
If Not Intersect(Target, Range("B2:B200")) Is Nothing Then
Select Case Target
Case "Critique": [SIZE=3][COLOR=red]If range("C" & Target.row)=1 then Target.Interior.ColorIndex = 3
[/COLOR][/SIZE]Case "Majeure": Target.Interior.ColorIndex = 45 ' idem ici
Case "Mineure": Target.Interior.ColorIndex = 4  'idem ici
Case "IR": Target.Interior.ColorIndex = 6 'idem ici
Case "OR": Target.Interior.ColorIndex = 23 'idem ici
'pour tous les autres cas
Case Else: Target.Interior.ColorIndex = xlColorIndexAutomatic
End Select
End If


A+
 
Dernière modification par un modérateur:
Re : execution macro?

Hello,

Merci pour ton aide... pour le moment ca ne marche po 🙁
J'uplaod le fichier exemple.
Sinon, c'est effectivement la collone "U" qui dois changer couleur en fonction du contenue de la cellule B et de la valeure de cellule en U.

Si je peux encore abuser... 😉 ca serait cool...

Je suis en trai de chercher de mon coté ce qui ne va pas 🙂

@ +++
 

Pièces jointes

Re : execution macro?

Bonjour,

Voici :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("T2:T200")) Is Nothing Then
        Select Case Target.Value
        Case Is > 1: Target.Interior.ColorIndex = 3
        Case Is = 1: Target.Interior.ColorIndex = 4
        Case Is = 0: Target.Interior.ColorIndex = 2
            'pour tous les autres cas
        Case Else: Target.Interior.ColorIndex = xlColorIndexAutomatic
        End Select
    End If
    If Not Intersect(Target, Range("B2:B200")) Is Nothing Then
        Select Case Target
        Case "Critique": Target.Interior.ColorIndex = 3
        Case "Majeure": Target.Interior.ColorIndex = 45
        Case "Mineure": Target.Interior.ColorIndex = 4
        Case "IR": Target.Interior.ColorIndex = 6
        Case "OR": Target.Interior.ColorIndex = 23
            'pour tous les autres cas
        Case Else: Target.Interior.ColorIndex = xlColorIndexAutomatic
        End Select
    End If
    If Not Intersect(Target, Range("U2:U200")) Is Nothing Then
        If Target = 1 And Cells(Target.Row, 2) = "Critique" Then
            Target.Interior.ColorIndex = 3
        Else
            Target.Interior.ColorIndex = xlColorIndexAutomatic
        End If
    End If
End Sub

Si tu n'as qu'un test ou 2 à faire sur la colonne U tu n'as pas besoin de Select Case....!

De plus, j'ai le sentiement que tu ne comprends pas bien:
Code:
If Not Intersect(Target, Range("U2:U200")) Is Nothing Then
Alors fait appel à l'aide en ligne, fais des tests et vois se qui se passe.
Ce sera préférable, que le simple 'copier/coller'. De plus je ne serais pas obligé d'intervenir pour des choses que tu aurais pu trouver toi-même.

Bon dimanche
A+
 
Re : execution macro?

Hello,

je te remercie beaucoup pour ton aide....
Effectivement, malgrès mes tests, mes recherches, je n'arrives pas a le faire fonctionner ;(

En tout cas merci du temps que tu as passé pour moi...

En espérant pouvoir aider sur les domaines qui sont les miens 🙂

@++ Kytoo
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
7
Affichages
179
Réponses
9
Affichages
509
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…