Mise en forme conditionnelle

Fermé
LaeDan Messages postés 5 Date d'inscription jeudi 22 mai 2014 Statut Membre Dernière intervention 23 mai 2014 - Modifié par LaeDan le 22/05/2014 à 11:23
f894009 Messages postés 17189 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 6 mai 2024 - 23 mai 2014 à 14:13
Bonjour à tous!

Je suis embêté sur Excel 2007, je vous explique mon problème:

J'ai des valeurs numériques dans la colonne A et des valeurs dans la colonne B qui sont des formules basiques de type somme en fonction des valeurs de A.
Je prends un exemple:
B1=> =A2+A4
B2=> =A7+A12
Je voudrais que A2 et A4 se remplissent d'une couleur lorsque je clique sur B1, puis lorsque je clique sur B2 alors A2 et A4 redeviennent blanches et A7 et A12 se remplissent de la couleur etc... J'ai cherché dans mise en forme conditionnelle mais je ne trouve pas. Et je ne suis pas du tout à l'aise pour faire du VBA.

Merci de votre aide!

1 réponse

f894009 Messages postés 17189 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 6 mai 2024 1 705
22 mai 2014 à 11:57
Bonjour,

MFC pas possible, VBA ok sur selection cellule

code a mettre dans le VBA de la feuille:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'test si cellule selectionnee est dans la plage
If Not Intersect(Target, Range("B:B")) Is Nothing Then
'test si ce
If Target.FormulaLocal <> "" Then
'colonne A sans remplissage
Columns("A:A").Interior.Pattern = xlNone
'mise en tableau des adresses cellules de la formule
TAdress = Split(Range(Target.Address).FormulaLocal, "+")
'coloriage des cellules: ici jaune,Replace(TAdress(0), "=", "")--->pour supprimer le = du debut de formule
Range(Replace(TAdress(0), "=", "")).Interior.Color = 65535
Range(TAdress(1)).Interior.Color = 65535
End If
End If
End Sub

A+
1
LaeDan Messages postés 5 Date d'inscription jeudi 22 mai 2014 Statut Membre Dernière intervention 23 mai 2014
22 mai 2014 à 14:49
Merci de ta réponse!
Malheureusement ca n'a pas l'air de fonctionner. C'est la première fois que je fais du vba.
J'ai fait Alt+F11, insertion > module, j'ai copier-coller le code dans le module dont j'ai changé le nom à côté de name (sans espace ni rien de prohibé^^) mais à partir de là je ne sais pas quoi faire et il ne s'éxécute pas. On dirait qu'il ne s'enregistre pas...
Que se passe t-il?
0
f894009 Messages postés 17189 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 6 mai 2024 1 705
Modifié par f894009 le 22/05/2014 à 14:55
Bonjour,

J'ai fait Alt+F11, insertion > module---->et ben non, ce n'est pas ce que j'ai ecrit---->code a mettre dans le VBA de la feuille en double cliquant sur le feuille une fois la fenetre VBA ouverte
0
LaeDan Messages postés 5 Date d'inscription jeudi 22 mai 2014 Statut Membre Dernière intervention 23 mai 2014
Modifié par LaeDan le 22/05/2014 à 15:13
Génial, ca marche!!
C'est exactement ce que je voulais, merci beaucoup!
Comment fait-on pour changer de couleur le remplissage?
0
LaeDan Messages postés 5 Date d'inscription jeudi 22 mai 2014 Statut Membre Dernière intervention 23 mai 2014
Modifié par LaeDan le 22/05/2014 à 16:28
Bon...En fait j'ai recliqué sur non résolu car ca ne marche pas si bien que ca^^.

J'ai donné un exemple trivial dans le premier post mais mon document ressemble plus à:

B1=A1
B2=A4+A5+A6
B3=SOMME(A4:A12)
B4=A9+A11
...

Bref des opérations 'somme' basiques mais malgré tout de "taille" différente. Lorsque j'essaie d'appliquer le code, Excel m'affiche "erreur d'exécution '9': l'indice n'appartient pas à la seléction" SAUF pour les cellules composées d'une somme de deux cellules. J'en ai donc déduit (peut-être à tort) que l'erreur venait de la fin du code:

Range(Replace(TAdress(0), "=", "")).Interior.Color = 65535
Range(TAdress(1)).Interior.Color = 65535

Mais même en travaillant dessus et en essayant de faire une boucle while, cela ne fonctionne pas. Au secours!
0
f894009 Messages postés 17189 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 6 mai 2024 1 705
22 mai 2014 à 17:45
Re,

J'ai donné un exemple trivial C'est le moins que vous puissiez en dire. En dehors de SOMME, vous avez d'autres formules iconoclastes ????

Rassurez vous, c'est faisable avec quelques lignes de code supplementaires
0