XL 2019 VBA colorer les cellules et éliminer les cellules en rouge dans le calcul de plus proche valeur

KAMARY

XLDnaute Nouveau
Bonjour,

En fait j'ai fait ce script pour avoir la valeur le plus proche en plus et plus proche en moins par rapport à une valeur que je crée à partir d'une fonction mais j'ai besoin d'optimiser le script par la coloration des cellules en rouge qui ne correspond pas à la condition dans le script et les autres cellules en vert qui prise en calculer des valeurs plus proche en plus et en plus proche en moins en ci-joint mon script avec le fichier ...

Merci en avance
 

Pièces jointes

  • Classeur_DAF_macro.xlsm
    17.5 KB · Affichages: 6

njhub

XLDnaute Occasionnel
Bonjour KAMARY, le forum,

Voyez ci-dessous les formules utilisées pour le format conditionnel des cellules servant au calcul de la moyenne

pour les cellules comprises dans la fourchette référence + ou - 25% :
Code:
ET(C6<=$H6*1,25;C6>=$H6*0,8)

pour les cellules en dehors de la fourchette :
Code:
OU(C6>$H6*1,25;C6<$H6*0,8)

KAMARY.png


J'ai tenté de reproduire vos fonctions personnalisées en formules et j'y parviens partiellement pour
Code:
=CALCULMOYENNEAFFECTATION(C6:G6; H6)

qui devient :
Code:
=(MOYENNE.SI.ENS(C6:G6;C6:G6;"<="&H6*1,25;C6:G6;">="&H6*0,8)+H6)/2

mais pas pour =VALEUR_PROCHE(I6;C6:G6) que je n'arrive pas à comprendre, le double I dans IIF en ligne 55

VB:
Valeur_proche = IIf(minmax = 0, mini, maxi)

;)
 

KAMARY

XLDnaute Nouveau
Bonjour ,

je supprime les deux lignes en fait le besoin le plus proche en mois si j'arrive pas à trouver les plus proche en mois si deux valeurs en mois égaux seront afficher si aucune valeur plus proche en mois la valeur le plus proche sera afficher en ci-joint le script :
Function CalculMoyenneAffectation(rng As Range, colonneH As Range) As Double
Dim hValue As Double
Dim sum As Double
Dim count As Integer

Dim tempValue As Double
Dim result As Double


hValue = colonneH.Value
sum = 0 ' Initialize sum and count outside the loop
count = 0

For Each cell In rng

If cell.Value >= (hValue * 0.8) And cell.Value <= (hValue * 1.25) Then
cell.Interior.Color = RGB(255, 255, 0)
sum = sum + cell.Value
count = count + 1
End If

Next cell

If count > 0 Then

MsgBox "sum " & sum
MsgBox "count " & count
MsgBox "hValue " & hValue
CalculMoyenneAffectation = (sum / count + hValue) / 2
MsgBox "result " & result

End If




End Function
 

Discussions similaires

Statistiques des forums

Discussions
312 209
Messages
2 086 267
Membres
103 168
dernier inscrit
isidore33