Valeur dans une cellule par rapport à la couleur d'une cellule
thierry
-
eriiic Messages postés 24581 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 24581 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
je souhaite obtenir une valeur dans une cellule si une autre cellulle est colorée.
comment dois-je procéder
je souhaite obtenir une valeur dans une cellule si une autre cellulle est colorée.
comment dois-je procéder
3 réponses
-
Bonjour,
Si elle est colorée par MFC utiliser le même test pour calculer sa valeur.
Si couleur mise manuellement ça ne peut être fait qu'en VBA
eric
-
Bonjour,
une fonction personnalisée qui te retourne le n° de couleur :Function couleur(c As Range) As Variant Application.Volatile If c.Interior.ColorIndex = xlNone Then couleur = "" Else couleur = c.Interior.Color End If End Function
Vu que le changement de couleur n'est pas détecté par excel revalider une cellule pour mettre à jour.
Ex syntaxe :
=couleur(B3)
https://www.cjoint.com/c/CBdr1Ht47RU
eric -
Merci eric, j'ai essayé sur le fichier que tu m'a envoyé avec =couleur(B4) etc, ça fonctionne à condition de mettre d'abord la couleur en B3, B4, B5, etc..
mais si je met la formule =couleur(B4), =couleur(B5), =couleur(B6) en D4, D5, D6 par exemple et que je met ensuite de la couleur en cellulles B4, B5 et B6 alors ça ne fonctionne pas, comment puis-je faire ?
Par contre je ne sais pas ce que je peux faire de ce que tu m'a ecris plus haut : Function couleur(c As Range) As Variant
Application.Volatile
If c.Interior.ColorIndex = xlNone Then
couleur = ""
Else
couleur = c.Interior.Color
End If
End Function-
Tu n'as pas tout lu :
Vu que le changement de couleur n'est pas détecté par excel revalider une cellule pour mettre à jour
Ou bien faire F9.
Par contre je ne sais pas ce que je peux faire de ce que tu m'a ecris plus haut
C'est le code VBA de la fonction personnalisée, à mettre dans ton classeur.
- Alt+F11 pour ouvrir l'éditeur VBE
- double-clic sur le Module1 à gauche pour voir (ou coller) le code.
eric -
Je ne suis vraiment pas doué et suis désolé de t'ennuyer avec mon soucis.
J'ai collé le code VBA dans la feuille, mais ça ne fait rien.
Et maintenant, quand je refait la même manip que tout a l'heure c'est à dire mettre en (D3) : =couleur(B3) alors n'apparait plusen (D3) un chiffre mais #NOM?
je vais essayer de contourner le problème,mais c'est pas gagné.
Merci en tous cas de ton aide.
Sincères Salutations
Thierry -
Si tu ne lis pas ce qu'on t'indique tu ne risques pas d'y arriver...
pas dans la feuille, mais dans un module standard :
- Alt+F11 pour ouvrir l'éditeur VBE
- double-clic sur le Module1 à gauche pour voir (ou coller) le code.
Dans ton autre classeur, dans VBE, clic-droit sur ton projet (à gauche) et : 'insertion / module', coller le code dedans.
eric -
ce n'est pas que je ne lis pas ce que tu m'indique, c'est que je ne comprends pas ce que tu me demandes de faire.
Par exemple dans ta dernière réponse qu'appelles-tu: "pas dans la feuille, mais dans un module standard ?"
Ensuite si je fais alt+f11 j'ai bien l'éditeur VBA qui s'ouvre, mais je n'ai pas de Module1 à gauche.
Puis quand tu me dis ensuite: "Dans ton autre classeur, dans VBE, clic-droit sur ton projet (à gauche) et : 'insertion / module', coller le code dedans".Je ne sais pas de quel autre classeur tu me parles.
Je me rend bien compte que je ne suis pas à la hauteur, c'est pourquoi j'avais besoin d'aide.
Désolé du temps que je t'ai pris.
ça dois pourtant être assez simple.
A plus
Thierry -
-