création de fonction vba avec n critères

clichy

XLDnaute Junior
bonjour à tous,

j'ai trouvé sur le net une fonction qui m'intéresse ( merci à celui qui l'a faite) et je voudrais l'améliorer.
la fonction en question permet de faire une somme en fonction de la couleur des cellules

je l'ai modifiée pour permettre d'indiquer une valeur à une cellule en fonction de la couleur d'une autre cellule
>jusque là, ok
si je veux donner une valeur différente en fonction de 2 couleurs que peut prendre ma cellule test, j'y arrive.

pour aller au bout du truc, j'aimerai arriver a faire que me fonction fonctionne ( :D) quelque soit le nombre de critères de couleur que j'indique

et votre aide me permettra de continuer à apprendre...
et voila le fichier avec mes essais

je vous remercie pour votre aide
 

Pièces jointes

  • ValeurCouleur.xlsm
    17.8 KB · Affichages: 25

eriiic

XLDnaute Barbatruc
Re : création de fonction vba avec n critères

Bonjour,

si tu veux de l'aide il faudrait peut-être expliquer dans le détail ce que ta fonction est sensée faire.
Déjà m'est avis que tu pourrais mettre ta liste de mot et les couleurs associées dans les mêmes cellules, ça fera un paramètre de moins à passer.

eric
 
Dernière édition:

clichy

XLDnaute Junior
Re : création de fonction vba avec n critères

autant pour moi, j'essaie d'etre plus clair

si ma cellule D1 est orange alors D2= oui, si D1 est verte alors D2= ok etc... et mon problème est que je ne sais pas combien de couleur je pourrai avoir, aussi j'aimerai faire une fonction qui s'adapte au nombre de critères indiqués
du style > valeur_si_couleur_n(cellule à analyser, couleur 1, valeur 1, couleur 2, valeur 2, couleur n, valeur n, ....)

je trouve plusieurs codes pour additionner mais, moi, je veux indiquer une valeur spécifique, et les non additionner


merci pour votre aide
 

sousou

XLDnaute Barbatruc
Re : création de fonction vba avec n critères

bonsoir

pas sur que c'est ce que tu souhaites, mais essaies cette fonction qui doit être valable dans tous les cas
Function valeur(plageCel, plagec)
il suffit de mettre en plage c toutes les cellules de références
For Each Cel In plageCel
For Each coul In plagec
If Cel.Interior.Color = coul.Interior.Color Then valeur = coul.Offset(0, -1)
Next

Next
End Function
 

clichy

XLDnaute Junior
Re : création de fonction vba avec n critères

c'est top nickel et plus simple que la voie sur laquelle je m'engageai...
j'etais pourtant fier d'avoir su adapter une macro... :p

merci

et pour aller au bout du bout, comment faire pour que les changements soient fait automatiquement?

si demain je change une couleur ou une valeur, que je n'ai pas à "tirer" la formule de nouveau sur toutes mes feuilles?
j'ai essayé "application volatile" mais ca ne met pas à jour les cellules si sur une cellule incolore j'ajoute une couleur

merci pour ton aide actuelle et future
 
Dernière édition:

sousou

XLDnaute Barbatruc
Re : création de fonction vba avec n critères

Si tu changes des couleurs ou des valeurs:
Pas besoin de changer tes formules.
Ctrl Alt F9 va recalculer ta feuille.

Si tu augmente la plagec en ajoutant des valeurs et d'autres couleurs, tu dois modifier tes formules.
Dans ce cas une solution serait d'utiliser la plage de référence comme une plage nommée.
Tu peux ainsi insérée des lignes dans cette plage tes formules ne sront plus à modifier
 

eriiic

XLDnaute Barbatruc
Re : création de fonction vba avec n critères

Un changement de couleur n'est pas un événement détectable pour excel.
Obligé d'en utiliser un qui le soit pour ré-évaluer : recalcul (F9), activer une feuille, sélection d'une cellule, double-clic etc
eric
 

Discussions similaires

Statistiques des forums

Discussions
312 330
Messages
2 087 341
Membres
103 524
dernier inscrit
Smile1813