cette Macro ne marche pas ?

  • Initiateur de la discussion titin
  • Date de début
T

titin

Guest
bonjour à tous
je n'arrive pas à utiliser cette macro:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("A1:A15")) Is Nothing Then 'Plage à modifie

Select Case Target.Value
Case Is = "A"
Target.Interior.ColorIndex = 2
Case Is = "B"
Target.Interior.ColorIndex = 3
Case Is = "C"
Target.Interior.ColorIndex = 4
Case Is = "D"
Target.Interior.ColorIndex = 5
Case Is = "E"
Target.Interior.ColorIndex = 6
''''Ajoute autant de Case... que tu veux
End Select
End If
End Sub

mes cellules à coloriées dépende d'une fonction donc = à.
j'ai remplacé Select Case Target.Formula au lieu de Select Case Target.Value mais cela ne marche pas.
y a t'il une macro pour régler mon problème.
j'ai plus de 5 conditions de mise en couleur.

Merci pour votre aides
 
M

Michel_M

Guest
Bonjour Titin,

J'ai "copiécoller" ta macro: ca marche 5/5 si ce que tu vises est de colorier la cellule sélectionnée et non A1:A15 (?).

Ce qui m'a trompé au départ est que la couleur 2 (avec la lettre A) est la couleur Blanche: peut-être est ce cela

A+
Michel
 
T

titin

Guest
bonjour Michel_M

cette macro mache lorsque je tape une lettre A ou B ou C ... dans une cellule de la plage donnée mais lorsque ces cellule sont = à une fonction

EX:
=INDEX(Cycle;MOD(F13-$B$6+Démarrage;42)+(MOD(F13-$B$6+Démarrage;42)=0)*42)=INDEX(Cycle;MOD(F13-$B$6+Démarrage;42)+(MOD(F13-$B$6+Démarrage;42)=0)*42)

le résultat donne "C" ou "B" ou " B2".....
là pour moi cela ne marche pas, les cellules ne changent pas de couleurs
 
M

Michel_M

Guest
Re: cette Macro ne marche pas ? (retour au forum)

Re

Vu; ça, je ne sais pas faire!
peut-être agir sur l'origine du changement

Mais cette question a été posée sous autre forme il n'y a pas longtemps

Désolé
Michel
 
F

f.launay

Guest
Bonjour,
Ton problème vient du fait que vba lit le caractère contenu dans la cellule, a,b,c, etc
Donc si ta cellule contient "=a", vba ne reconnait pas le caractère puisqu'il est précédé du signe =; il faut donc adapter ton code en conséquence
Avec des formules il faut donc lire et stocker tes valeurs dans un tableau
pour pouvoir comparer leur ancienne valeur avec la nouvelle et les marquer
en couleur si elles changent de valeur
 

Discussions similaires

Statistiques des forums

Discussions
312 429
Messages
2 088 351
Membres
103 824
dernier inscrit
frederic.marien@proximus.