Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

sumprod : idéal pour du reporting quoique ;-))

6 réponses
Avatar
supprimerceci
Bonsoir à tous,

Fraichement recruté, je suis chargé du reporting mensuel de mon activité
(je gère une sorte de helpdesk). Je me suis lancé dans le monde
merveilleux d'excel sans avoir toutes les clés et là, je suis dans une
impasse.

Je m'explique : 1 seul fichier
3 onglets actifs : action en cours, action close, action directe
1 onglets Reporting

Je dois pouvoir estimer le nombre de requêtes qui ont pris - ou + de 3
jours ouvrés de traitement.

Comme le reporting comporte beaucoup d'autres items, je me base sur des
macros. Voici celles qui me posent problème :

''' Calcul du délai de prise en compte des requêtes Régulation :
'Délai inférieur ou égal à 3 jours ouvrés :
Worksheets("Reporting Mensuel").Range("E42") =
"=SUMPRODUCT((MONTH(EC_Date_Demande)=MONTH(Mois_Reporting))*(YEAR(EC_Date_Demande)=YEAR(Mois_Reporting))*(EC_Delai_Prise_Compte<=""3""))"

En fait, le blocage vient à mon avis de cette condition :
- (EC_Delai_Prise_Compte<=""3"")

qui renvoie sur une plage renommée où fonction suivante :
=SI(J33<>"";SI(A33=J33;1;J33-A33);"")
calcule le temps de prise en compte de la requête. Ma colonne affiche
donc des 1, des 2, des 3, etc...

Sur mon reporting, il y a une erreur #NOM? très vague. Serait-ce parce
que la condition est mal rédigée ? Que ce n'est pas le résultat de la
formule qui est finalement pris en compte par la macro mais la formule
carrément et là ce serait complètement normal?

Quelqu'un a't-il une solution pour améliorer cette condition? Un peu du
genre : (RESULT(EC_Delai_Prise_Compte))<=3) ou
(VALUE(EC_Delai_Prise_Compte))<=3).

De même, je profite de l'audience de qualité pour demander si l'un
d'entre vous aurait des pistes concernant le calcul du nombre de jours
ouvrés. Là, je sèche.

Merci d'avance.

En espérant avoir été clair.

Bonne soirée.

LanitZ, béotien mais qui avance

6 réponses

Avatar
FdeCourt
Salut,

Pour répondre à ta deuxième question, je te renvois vers un poste dan s
lequel tu auras ta réponse :

http://groups.google.fr/group/microsoft.public.fr.excel/browse_thread/threa d/7051f5daea0edf54#

Cordialement,

F.
Avatar
FdeCourt
Pour pouvoir y repondre, pourrais-tu poster un exemple de ton
fichier ?
http://cjoint.com/

Cordialement,

François
Avatar
LanitZ
Bonjour,

En effet, merci pour le lien dans lequel je vais me plonger, voici donc
le fichier :
http://cjoint.com/?mck14SXpPN

Merci d'avance.

Cordialement.

LanitZ
Avatar
FdeCourt
Tu as fait une erreur de saisis dans ta formule.
Remplace ta formule par :

=SOMMEPROD((MOIS(EC_Date_Demande)=MOIS(Mois_Reporting))*(ANNEE
(EC_Date_Demande)=ANNEE(Mois_Reporting))*(EC_Delai_Prise_Compte<=3))
+SOMMEPROD((MOIS(CLOS_date_demande)=MOIS(Mois_Reporting))*(ANNEE
(CLOS_date_demande)=ANNEE(Mois_Reporting))*
(CLOS_Délai_Prise_Compte<=3))+SOMMEPROD((MOIS(DROITS_Date_demande)=MO IS
(Mois_Reporting))*(ANNEE(DROITS_Date_demande)=ANNEE(Mois_Reporting))*
(DROITS_Delai_Prise_Compte<=3))

Tu as tapé "CLOS_Delai_Prise_Compte" et non
"CLOS_Délai_Prise_Compte" (avec un accent à "Délai")

Cordialement,

F.
Avatar
FdeCourt
Et si je puis me permettre,
Au lien d'avoir des noms qui oblige Excel à balayer l'ensemble des
lignes, peut être serait-il mieux d'avoir ce type de formule :
Par exemple pour Clos_categorie :
utilise plutôt :

ÞCALER(Clos!$G$2;;;NBVAL(Clos!$A:$A)-1;)

Cela pourrais peut être te permettre d'éviter d'avoir une macro (bien
sur en fonction du nombre d'appels enregistrés. Si mensuellement il y
en a rapidement plus de 5 ou 10 milles, ca ne vaut peut être pas le
coup. Si ce n'est pas le cas, je pense que tu peux laisser les
formules dans les cellules avec l'exemple ci dessous)

Et ainsi de suite (par contre il faut le faire pour que ca marche, et
que le NBVAL fasse toujours référence à la même colonne)

attention SOMMEPROD exige que les matrices soient de la même taille.
Donc pour les formules qui font référence à plusieurs feuille, prends
la plus grande valeur du NBVAL (en ajoutant un nom :
nbvaleurs : =MAX(NBVAL('Suivi Droits'!$A:$A);NBVAL(Clos!$G:$G);NBVAL
('En Cours'!$A:$A))-1

puis pour chaque nom, au lieu de ÞCALER(Clos!$G$2;;;NBVAL(Clos!$A:
$A)-1;)
tu peux mettre : ÞCALER(Clos!$G$2;;;nbvaleurs;)
_____________________________
Sinon dans ta macro, au lieu de tout découper, mais un
Application.Calculation = xlCalculationManual au tout début du code
puis un
Application.Calculation = xlCalculationAutomatic à la fin du code

Ensuite regroupe tous les collages de valeurs à la fin de la macro
(mais avant le Application.Calculation = xlCalculationAutomatic)

Juste avant de faire le copier coller des valeurs, ajoute :
Application.CalculateFull
__________________
Autre chose, pour ne pas afficher le quadrillage, au lieu de mettre
des bordures blanches, tu as une option sous Excel pour ne pas
l'afficher (Outils > Options > Tu décoches Quadrillage)
Avatar
LanitZ
Quelle honte,

Bloqué tant de temps sur une sordide histoire d'accent.

Merci beaucoup et mille merci pour tes conseils affutés que je ne
manquerai pas de mettre en oeuvre. Je fais faire un pilote pour 2010.
Cela me parait du coup aussi moins fastidieux que ma méthode.

Si besoin, je reviendrai crier à l'aide !

Bravo car il y a beaucoup de trucs à savoir dispo ici. J'espere un jour
pouvoir aider comme tu l'as fait aujourd'hui.

Bonne journée.

LanitZ


FdeCourt a écrit :
Et si je puis me permettre,
Au lien d'avoir des noms qui oblige Excel à balayer l'ensemble des
lignes, peut être serait-il mieux d'avoir ce type de formule :
Par exemple pour Clos_categorie :
utilise plutôt :

ÞCALER(Clos!$G$2;;;NBVAL(Clos!$A:$A)-1;)

Cela pourrais peut être te permettre d'éviter d'avoir une macro (bien
sur en fonction du nombre d'appels enregistrés. Si mensuellement il y
en a rapidement plus de 5 ou 10 milles, ca ne vaut peut être pas le
coup. Si ce n'est pas le cas, je pense que tu peux laisser les
formules dans les cellules avec l'exemple ci dessous)

Et ainsi de suite (par contre il faut le faire pour que ca marche, et
que le NBVAL fasse toujours référence à la même colonne)

attention SOMMEPROD exige que les matrices soient de la même taille.
Donc pour les formules qui font référence à plusieurs feuille, prends
la plus grande valeur du NBVAL (en ajoutant un nom :
nbvaleurs : =MAX(NBVAL('Suivi Droits'!$A:$A);NBVAL(Clos!$G:$G);NBVAL
('En Cours'!$A:$A))-1

puis pour chaque nom, au lieu de ÞCALER(Clos!$G$2;;;NBVAL(Clos!$A:
$A)-1;)
tu peux mettre : ÞCALER(Clos!$G$2;;;nbvaleurs;)
_____________________________
Sinon dans ta macro, au lieu de tout découper, mais un
Application.Calculation = xlCalculationManual au tout début du code
puis un
Application.Calculation = xlCalculationAutomatic à la fin du code

Ensuite regroupe tous les collages de valeurs à la fin de la macro
(mais avant le Application.Calculation = xlCalculationAutomatic)

Juste avant de faire le copier coller des valeurs, ajoute :
Application.CalculateFull
__________________
Autre chose, pour ne pas afficher le quadrillage, au lieu de mettre
des bordures blanches, tu as une option sous Excel pour ne pas
l'afficher (Outils > Options > Tu décoches Quadrillage)