Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

VBA: Gérer un SOMMEPROD dans une MFC

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

Dernière édition:
Re : VBA: Gérer un SOMMEPROD dans une MFC

Bonjour MJ,

ma version d'Excel est 2010 (comme marqué sur le titre du post 😛).
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
 
Re : VBA: Gérer un SOMMEPROD dans une MFC

Re

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

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 😀.
 
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:
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!

@+
 
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+
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
9
Affichages
730
  • Question Question
Microsoft 365 comparaison texte
Réponses
5
Affichages
740
  • Question Question
Microsoft 365 colorer une plage
Réponses
2
Affichages
902
Réponses
22
Affichages
3 K
Réponses
8
Affichages
1 K
Réponses
4
Affichages
2 K
Réponses
13
Affichages
2 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…