Test conditionnel portant sur la couleur de la cellule

Fermé
regis95800 Messages postés 6 Date d'inscription vendredi 21 octobre 2016 Statut Membre Dernière intervention 25 janvier 2017 - 21 oct. 2016 à 13:29
Raymond PENTIER Messages postés 58414 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 8 mai 2024 - 21 oct. 2016 à 18:43
Bonjour,

j'ai fait un tableau excel avec certaines cases avec fonds de couleur jaune et d'autres non;
je souhaite que les cellules sans fonds de couleur aient le chiffre 0 et celles avec le fonds de couleur jaune la valeur se trouvant dans la première cellule de la colonne

quelqu'un sait il comment faire un test conditionnel portant sur la couleur de la cellule ?

merci
A voir également:

4 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
21 oct. 2016 à 13:37
Bonjour

la mise en couleur est t elle manuelle ou créee par une mise en forme conditionnelle ,

0
regis95800 Messages postés 6 Date d'inscription vendredi 21 octobre 2016 Statut Membre Dernière intervention 25 janvier 2017
21 oct. 2016 à 13:40
la mise en couleur est manuelle
0
Raymond PENTIER Messages postés 58414 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 8 mai 2024 17 105
21 oct. 2016 à 14:46
C'est dommage ! Il aurait été préférable de renseigner tes cellules avec le chiffre 0 ou la formule =INDEX(A1:Z1;1)
Ensuite tu crées une règle de mise en forme conditionnelle pour remplir en jaune les cellules différentes de 0 ...
0
regis95800 Messages postés 6 Date d'inscription vendredi 21 octobre 2016 Statut Membre Dernière intervention 25 janvier 2017 > Raymond PENTIER Messages postés 58414 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 8 mai 2024
21 oct. 2016 à 14:53
en fait non ; mon besoin n'est pas de coloriser la cellule
mon besoin est :
si je colorise la cellule (par exemple en jaune), apparait la valeur qui se trouve en haut de la colonne; si je ne colorise pas la cellule, n'apparaît aucune valeur ou bien apparait la valeur 0
j'espère être plus clair sur mon besoin
merci en tout cas
0
Raymond PENTIER Messages postés 58414 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 8 mai 2024 17 105 > regis95800 Messages postés 6 Date d'inscription vendredi 21 octobre 2016 Statut Membre Dernière intervention 25 janvier 2017
21 oct. 2016 à 18:43
Oui, c'est très clair : c'est que tu as demandé au départ ...
Moi, je t'explique que ce n'est pas la meilleure approche : Ce n'est pas plus long ni plus compliqué de saisir la formule dans toutes les cellules du tableau (juste un copier-coller) puis de mettre des 0 au lieu de mettre du jaune, là où c'est nécessaire. Et cela ne nécessite pas de macro !
Cordialement.
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 21/10/2016 à 14:01
Il y a plusieurs ton de jaune
dans un premier temps
pour savoir le code couleur
sur la feuille selectionne une cellule colorée
et exécute cette macro
Sub couleur()
MsgBox ActiveCell.Interior.Color
End Sub

le jaune classique te renvoie 65535

en connaissant le code tu boucleras sur la zone de travail avec la fonction Find
avec le parametre "searchformat"

désolé, mais je dois m'absenter


 Michel
0
regis95800 Messages postés 6 Date d'inscription vendredi 21 octobre 2016 Statut Membre Dernière intervention 25 janvier 2017
21 oct. 2016 à 14:10
ok le test sur la couleur donne bien le code 65535

ensuite .... find "searchformat" ..... je ne comprends pas

merci en tout cas
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 21/10/2016 à 17:10
En lisant ton échange avec Raymond, je m'aperçois que j'avais mal compris ton pb

Excel étant un calculateur , Vba a du mal avec des évènements sur des couleurs donc

principe: tu mets la cellule en jaune et tu fais un clic droit
Option Explicit
'------------------------------------------------------
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("A3:D10")) Is Nothing Then
If Target.Interior.ColorIndex = 6 Then: Target = Cells(1, Target.Column)
End If
Cancel = True
End Sub


macro à copier-coller dans le module feuille concerné

pour cela faire un copier de cecode
clic droit sur l'onglet de la feuille
visualiser le code
coller

la maquette de W
https://www.cjoint.com/c/FJvpineX636

 Michel
0