VBA: Gérer un SOMMEPROD dans une MFC

AnhDerve

XLDnaute Nouveau
Bonjour à tous,

j'ai réalisé un petit morceau de code permettant d'ajouter une MFC sur une case.
La formule pour cette MFC contient un SOMMEPROD.
Je n'ai aucune erreur, tout se passe bien au niveau du code.

Code:
    ' strCaseIdDemande = Case contenant l'identifiant de la demande
    ' colonne L = Colonne contenant l'ensemble des identifiants des demandes (plusieurs lignes concernées pour une même demande
    ' colonne I = Colonne contenant l'ensemble des charges consommées unitaires
    ' strCaseChargeVendue = Case contenant la charge totale vendue pour cette demande
    
    Range(strCaseIdDemande).Select
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=SOMMEPROD(SI($L:$L=" & strCaseIdDemande & ";1;0);$I:$I)>" & strCaseChargeVendue
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .Color = 255
        .TintAndShade = 0
    End With
    Selection.FormatConditions(1).StopIfTrue = False


Seulement, au final, lorsque je regarde ma feuille Excel, aucune case n'est mise en évidence (alors qu'elle le devrait, via la MFC).
Les MFC sont bien créées, mais ne semblent pas activées!

Si j'ouvre une formule, ne modifie rien mais clique seulement sur "OK" puis "Appliquer", la MFC devient active (et les cases sont mise en évidence, ce qui prouve que mon SOMMEPROD est correct :)).

Auriez-vous une explication à ce problème?
Je me casse un peu la tête à gérer ce cas :(

Merci d'avance pour votre aide!

Anh
 

Pièces jointes

  • TestSOMMEPROD.xls
    38 KB · Affichages: 57
  • TestSOMMEPROD.xls
    38 KB · Affichages: 60
  • TestSOMMEPROD.xls
    38 KB · Affichages: 65
Dernière édition:

AnhDerve

XLDnaute Nouveau
Re : VBA: Gérer un SOMMEPROD dans une MFC

Bonjour MJ,

ma version d'Excel est 2010 (comme marqué sur le titre du post :p).
Pour le fichier, il contient des requêtes en base et des infos confidentielles. Je ne peux donc pas le diffuser, mais si tu me dis les infos qui te sont nécessaires pour m'aider à avancer, je m'efforcerai de te les donner!

@+

Anh
 

MJ13

XLDnaute Barbatruc
Re : VBA: Gérer un SOMMEPROD dans une MFC

Re

ma version d'Excel est 2010 (comme marqué sur le titre du post :p).

Ah oui, mais comme j'avais ouvert pour répondre, je ne l'ai pas vu. Sinon, tu peux le rajouter dans ton profil.

Sinon, j''espére qu'il y aura un devin sur XLD.

Les données confidentielles, souvent, les gens s'arrangent pour qu'il n'y en ai pas :D.
 

AnhDerve

XLDnaute Nouveau
Re : VBA: Gérer un SOMMEPROD dans une MFC

Je vais essayer de gérer un fichier light :)
Je le mets dès que possible en téléchargement.


EDIT: Voilà: Fichier à télécharger sur le premier POST.
Dans ce fichier, il ne reste que la macro sur la MFC.
La case B2 est celle où doit être créée la MFC.


Merci pour votre aide!

Anh
 
Dernière édition:

AnhDerve

XLDnaute Nouveau
Re : VBA: Gérer un SOMMEPROD dans une MFC

J'ai d'ailleurs le même problème, toujours avec le SOMMEPROD, lorsque je veux l'écrire dans une case en tant que formule.

Si je fais:

Code:
Range("M3").Select
ActiveCell.FormulaLocal = "=SOMMEPROD(($I:$I);SI($L:$L=$B$2;1;0))"

ma case contient alors: #VALEUR.
Si j'édite la case et fait CTRL+SHIFT+ENTREE, la formule est alors activée.

1- Comment faire pour que, via mon code, cette formule soit directement activée?
2- Est-ce que ça peut venir d'un paramétrage d'Excel?

Merci pour vos réponses!

@+
 

job75

XLDnaute Barbatruc
Re : VBA: Gérer un SOMMEPROD dans une MFC

Bonsoir AnhDerve, salut Michel,

Sur Excel 2003 (ça devrait être pareil pour 2010, non ?), SOMMEPROD n'accepte que des plages délimitées.

Ici j'écrirais donc très classiquement (fonction SI inutile) :

Code:
ActiveCell.FormulaLocal = "=SOMMEPROD($I[COLOR="Red"]$1[/COLOR]:$I[COLOR="red"]$1000[/COLOR]*($L[COLOR="red"]$1[/COLOR]:$L[COLOR="red"]$1000[/COLOR]=$B$2))"

Tâchez aussi d'éviter les Select, c'est généralement inutile et même nuisible en VBA (ralentissement des macros).

A+
 

AnhDerve

XLDnaute Nouveau
Re : VBA: Gérer un SOMMEPROD dans une MFC

Bonsoir Job,

merci pour ta réponse. Je viens d'appliquer ton conseil, et effectivement, les 2 problèmes sont réglés!
Le coup des plages délimitées n'est pas indiqué dans l'aide, malheureusement.
Au niveau du code, je ne suis pas fan de mettre des bornes fixes comme ça, mais là je n'ai apparemment pas le choix :)

Merci beaucoup pour votre aide!

Anh
 

Discussions similaires

Réponses
2
Affichages
686
Réponses
8
Affichages
664

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 229
Messages
2 086 426
Membres
103 206
dernier inscrit
diambote