Somme Couleur MFC

systmd

XLDnaute Occasionnel
Bonjour à tous,

J'ai un petit souci avec la fonction Somme Couleur MFC de BOISGONTIER.

Dans mon exemple :
- (onglet OK) ça fonctionne mais j'ai un problème de rafraichissement au démarrage (résultat =0)

- (onglet Erreur), mon cas concret, ne fonctionne pas.

Est-ce que quelqu'un aurai la gentillesse d'y jeter un œil, car je ne vois pas où je fais une erreur.
Merci
 
Dernière édition:

systmd

XLDnaute Occasionnel
Re : Somme Couleur MFC

Bonjour le forum ;)

Un petit up, avec les retours de vacances ont ne sais jamais :) .

J'ai fais autrement (plus long) , mais je ne vois toujours pas où je fais une erreur.
Dommage, avec cette fonction, celà m'aurait facilité la vie.

@ BOISGONTIER : je vous ai laissé un MP, pas d'idée sur le sujet?
 

abc

XLDnaute Impliqué
Re : Somme Couleur MFC

Bonjour,
je patine avec VBA mais quand je compare les feuilles la MEFC est différente.
Tu agit avec des dates et plus avec des conditions.
Regarde peut être de se coté la.
J'ai modifier ton fichier regarde et dis quoi.
A +
 

Pièces jointes

  • Copie de SommeCouleurConditionnelle2.zip
    21.1 KB · Affichages: 82

systmd

XLDnaute Occasionnel
Re : Somme Couleur MFC

Bonjour à tous,

Bon l'erreur viens de la fonction "CouleurMFC(cel)"
J'ai rajouté la fonction <<ET>> dans ff et fa comme ci-dessous en rouge
Code:
Function CouleurMFC(cel)
  Application.Volatile
  Set c = Range(cel.Address)
  ff = Array("Somme", "aujourdhui()", "nb.si", "equiv", "recherchev", _
    "Nbval", "sommeprod", "joursem", "gauche", "droite", "stxt"[COLOR="Red"],"et")[/COLOR]
  fa = Array("Sum", "today()", "countif", "match", "vlookup", _
     "counta", "sumproduct", "weekday", "left", "right", "mid"[COLOR="Red"],"and" [/COLOR])
  a = Array("=", ">", "<", ">=", "<=", "<>", "BETWEEN")
  b = Array(xlEqual, xlGreater, xlLess, xlGreaterEqual, xlLessEqual, xlNotEqual, xlBetween)
  i = 1
  Do While i <= c.FormatConditions.Count And Not témoin
    If c.FormatConditions(i).Type = xlCellValue Then
    tmp1 = Evaluate(c.FormatConditions(i).Formula1)
    oper = a(Application.Match(c.FormatConditions(i).Operator, b, 0) - 1)
    If oper <> "BETWEEN" Then
      If Evaluate(c & oper & tmp1) Then
        coul = c.FormatConditions(i).Interior.ColorIndex
        témoin = True
      End If
    Else
      tmp2 = Evaluate(c.FormatConditions(i).Formula2)
      If Evaluate("AND(" & c & ">=" & tmp1 & "," & c & "<=" & tmp2 & ")") Then
         coul = c.FormatConditions(i).Interior.ColorIndex
         témoin = True
      End If
    End If
  Else
     z = c.FormatConditions(i).Formula1
     For k = LBound(ff) To UBound(ff)
       z = Replace(z, UCase(ff(k)), UCase(fa(k)))
     Next k
[COLOR="blue"]     If Evaluate(z) = True Then
        coul = c.FormatConditions(i).Interior.ColorIndex
        témoin = True
     End If[/COLOR]
   End If
   i = i + 1
  Loop
  CouleurMFC = coul
End Function

Toujours rien, je pense qu'il faudrait passer la formule en mode R1C1, mais je n' arrive pas (couleur bleu)
 

Discussions similaires

Réponses
3
Affichages
189
Réponses
6
Affichages
391

Statistiques des forums

Discussions
311 715
Messages
2 081 822
Membres
101 822
dernier inscrit
holale