Valeur dans une cellule par rapport à la couleur d'une cellule

Fermé
thierry - 2 févr. 2013 à 13:08
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 - 3 févr. 2013 à 21:40
Bonjour,

je souhaite obtenir une valeur dans une cellule si une autre cellulle est colorée.
comment dois-je procéder

3 réponses

eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 212
2 févr. 2013 à 14:11
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
0
merci eric, effectivement la couleur est mise à la main et je vois parler partout de VBA mais c'est pas simple pour moi. A moins d'une explication assez détaillée.
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 212
2 févr. 2013 à 19:43
A moins d'une explication assez détaillée.
Si tu commençais par détailler ton besoin...

Déposer le fichier xls (réduit au nécessaire et anonymisé) avec les explications et le résultat attendu sur cjoint.com et coller ici le lien fourni.

eric
0
Bonjour eric désolé de ma réponse tardive je n'étais pas devant mon PC, Merci pour la manip pour t'envoyer le fichier.
Voici le lien : http://cjoint.com/?CBdqZRFlgBY
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 212
3 févr. 2013 à 17:55
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
0
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
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 212
3 févr. 2013 à 18:40
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
0
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
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 212
Modifié par eriiic le 3/02/2013 à 19:38
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
0
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
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 212
3 févr. 2013 à 21:40
Je ne sais pas de quel autre classeur tu me parles.
J'avais supposé que tu avais un classeur où tu voulais utiliser cette fonction.
Si ce n'est pas le cas tu travailler avec celui que je t'ai fourni en exemple, mais ça sera le seul à avoir cette fonction.

eric
0