Calcul conditionnel et couleur cellules en VBA

moustic54

XLDnaute Occasionnel
Bonsoir à tous,

J'aurai grand besoin des lumières d'un magicien vébéiste pour répondre à mes interrogations.
J'aimerai réaliser des calculs conditionnels sur excel en appliquant un pourcentage différent selon la couleur des cellules.
Mais je crois qu'un extrait de fichier joint sera plus clair que des explications.
Si quelqu'un à une idée ???
Merci d'avance de votre aide
 

Pièces jointes

  • Calcul conditionnel.xls
    94 KB · Affichages: 119
  • Calcul conditionnel.xls
    94 KB · Affichages: 122
  • Calcul conditionnel.xls
    94 KB · Affichages: 109
Dernière édition:

moustic54

XLDnaute Occasionnel
Re : Calcul conditionnel et couleur cellules en VBA

Bonsoir Forum

Merci pour ta proposition mais plusieurs conditions doivent être respectées.
Laisser sur les onglets nommés Feuil1 et 2, les couleurs avec les pourcentages accessibles de façon à ne pas les écrire en dure dans le code mais pouvoir les modifier à loisir selon les utilisateurs.
Dans l'onglet Résultats2 lié à Feuil2 les pourcentages comme en feuil1 sont corrélés à la couleur de la cellule mais en plus les bornes varient selon la colonne contrairement à la feuil1.
Merci malgré tout.
 

Grand Chaman Excel

XLDnaute Impliqué
Re : Calcul conditionnel et couleur cellules en VBA

Bonsoir,

Voici ma proposition avec une formule personnalisée :

Code:
Function MFC_Coul_Cell(rVal As Range, Tabl As Range) As Long
'rVal:  Valeur de départ
'Tabl:  Plage avec couleurs et pourcentage
'On suppose que l'utisateur met la couleur de fond dans le tableau F3:Y16
'selon les bornes (ou par une mise en forme conditionnelle)
Dim c As Range

MFC_Coul_Cell = 0   'Valeur par défaut
For Each c In Tabl
    If c.Interior.ColorIndex = rVal.Interior.ColorIndex Then
        MFC_Coul_Cell = rVal.Value * (1 + c.Value)  'Valeur + %
        Exit Function
    End If
Next c

End Function

Avec fichier en exemple :
 

Pièces jointes

  • Calcul conditionnel_1.xls
    146.5 KB · Affichages: 104

moustic54

XLDnaute Occasionnel
Re : Calcul conditionnel et couleur cellules en VBA

Bonjour Grand Chaman

Merci pour ton aide Grand Chaman.
Peux-tu me dire à quel moment le recalcul (ou calcul) des cellules des feuil1 et 2 se fait dans les onglets résultats ?
Je pense qu'il y a une erreur dans les onglets résultats, car malgré l'application des pourcentages tu obtiens que des chiffrs entiers mais je n'y connais pas grand chose en code vba pour identifier l'origine de l'erreur. :(
 

Grand Chaman Excel

XLDnaute Impliqué
Re : Calcul conditionnel et couleur cellules en VBA

Salut moustic54,

Oups, une erreur dans mon code (il était tard hier soir), remplace la 1re ligne
Function MFC_Coul_Cell(rVal As Range, Tabl As Range) As Long

par

Function MFC_Coul_Cell(rVal As Range, Tabl As Range) As Double

et appuie sur F9 pour recalculer ensuite.
La fonction était de type "Long" qui ne renvoie que nombres entiers.
 

moustic54

XLDnaute Occasionnel
Re : Calcul conditionnel et couleur cellules en VBA

Bonsoir Grand Chaman, bonsoir à tous

Merci pour cette modification de code :), je vais essayer de suite.

Une autre petite question, tu évoques la possibilité de passer par des MFC qui sont limitées à 3 dans Excel2003 or dans mes feuilles elles sont de 8 pour la feuil1 et plus encore pour la feuil2 puisque les conditions devront être différentes selon chaque colonne du tableau.:confused::confused:

Comment peut on procéder pour définir les bornes (lignes 19 à 26) pour chacune des colonnes du tableau (de F à Y) (cf. feuil2) ?
Si l'on applique un code, celui-ci ne risque pas d'être en conflit avec ton code ?
 

Grand Chaman Excel

XLDnaute Impliqué
Re : Calcul conditionnel et couleur cellules en VBA

Bonsoir moustic54,
En effet avec Excel 2003, tu es limité à 3 MFC... Il est sûrement possible de faire une autre macro pour appliquer les couleurs dans les cellules selon les bornes... J'y réfléchis et je te reviens si j'ai une solution.
 

Grand Chaman Excel

XLDnaute Impliqué
Re : Calcul conditionnel et couleur cellules en VBA

Salut,
Je pense que j'ai trouvé la solution :

Voir dans le fichier joint.

Tu commences pas activer la macro "MFC_plusieurs_couleurs" pour chaque feuille avec des données (Feuil1, Feuil2, ...). Tu dois ensuite sélectionner la 1re cellule en haut à gauche du tableau des valeurs et du tableau des bornes.
La macro s'occupe du reste.

Note : Tu dois changer le format du tableau des bornes.
Note2 : Les bornes peuvent un nombre de lignes différents.
Note3 : Testé avec Excel 2003 mais aucune gestion d'erreurs...

Laisse-moi savoir si ça convient...
 

Pièces jointes

  • Calcul conditionnel_2.xls
    153 KB · Affichages: 75
  • Calcul conditionnel_2.xls
    153 KB · Affichages: 93
  • Calcul conditionnel_2.xls
    153 KB · Affichages: 81

moustic54

XLDnaute Occasionnel
Re : Calcul conditionnel et couleur cellules en VBA

Bonjour Grand Chaman, bonjour à tous

Grand Chaman, je reviens vers toi pour te demander comment peut-on adapter le code pour pouvoir appliquer les bornes définies à un ensemble de colonnes du tableau de données et non plus une à une ?

Merci d'avance pour ton aide
 

Grand Chaman Excel

XLDnaute Impliqué
Re : Calcul conditionnel et couleur cellules en VBA

Bonjour Moustic54,

J'ai modifié la macro et je l'ai nommé MFC_plusieurs_couleurs2.
Tu dois dans un premier temps sélectionner toutes les cellules que tu veux mettre en forme et ensuite sélectionner la première cellules du tableau des bornes.

Encore une fois, n'hésite pas si tu as un problème.
 

Pièces jointes

  • Calcul conditionnel_2.xls
    155 KB · Affichages: 96
  • Calcul conditionnel_2.xls
    155 KB · Affichages: 89
  • Calcul conditionnel_2.xls
    155 KB · Affichages: 87

moustic54

XLDnaute Occasionnel
Re : Calcul conditionnel et couleur cellules en VBA

Bonsoir Grand Chaman, bonsoir à tous

Merci beaucoup, je ne pensais pas, Grand Chaman, que tu répondrais si vite.
Une fois encore, c'est super :D
Et merci pour ta proposition.

Bonne soirée
 

Discussions similaires

Statistiques des forums

Discussions
311 729
Messages
2 081 970
Membres
101 852
dernier inscrit
dthi16088