Pb dans une condition d'un SOMMEPROD

Bonjour a tous,

Je cherche a caculer le nombre de jours entre l'approbation de projets et leur mise en place. J'utilise pour cela un sommeprod avec des conditions.

Je veux une repartition de cette duree en fonction des mois de debut de recherche de projet: si mon projet a commence a etre etudie en Fevrier, qu'il a ete approuve en Mars et mis en place en avril, il rentrera dans les statistiques de Fevrier.

ma formule fait donc la difference entre la date d'approbation (DA) et la date de mise en place (DMP) en fonction de la date de debut d'etude (DDE)

Dans certains cas, les projet n'ont pas abouti, il y a "exit" ou autre chose a la place de la date. Pour eviter les erreurs j'ai trouve une fonction qui teste si une cellule contient ou non une date que j'ai integree dans un module:

Function EstDateHeure(pPlage As Range) As Boolean
Dim vValeur As String
vValeur = pPlage.Cells(1).Text
On Error Resume Next
EstDateHeure = IsDate(TimeValue(vValeur))
On Error GoTo 0
End Function

mais il me semble qu'elle bute encore sur les valeurs qui contiennent autre chose qu'une date et la formule finale me renvoie une erreur #VALUE

Je vous ai joint le fichier en exemple

https://www.excel-pratique.com/~files/doc/TEST_pr_Forum.xls

En esperant avoir ete clair et que quelqu'un pourra m'aider.

Petit plus, je me demande si mon classeur ne serait pas plus leger en faisant une macro pour cette fonction au lieu de mes grosses formules. Si quelqu'un a la patience et le temps de jeter un oeil et de me donner des bases pour la faire, ce serait sympa.

Merci pour votre aide

grand merci en plus a celui qui repondra au petit plus

Bonsoir,

Je pense que la fonction DATEDIF qui est dans ta formule ne supporte pas les données textes qui sont dans la colonne B et C.

Oui je pense aussi,

c'est pour ca que j'ai mis le test avec la fonction EstDateHeure comme argument dans le sommeprod, mais ca marche toujours pas.

Merci

Re,

Ca ne change strictement rien. Il y a des messages d'erreur #VALEUR à l'intérieur du résultat produit par la formule DATEDIF. D'où le plantage. Teste le résultat de chaque facteur, tu verras.

Ok merci, je comprends,

Je pensais que ca s'annulerait avec le "False" produit par le test EstDateHeure, mais en fait, le produit Value*0 donne "Value" et pas 0. d'ou le Value au final.

Je vais essayer de trouver une idee pour contourner le probleme, si vous en avez, je serai ravi d'en profiter.

Merci

Bonjour,

J'ai un peu de mal à évaluer la pugnacité du résultat par rapport à ce que tu en attend...

peut-être une solution avec cette formule :

=SOMMEPROD((($A$5:$A$36)>0)*(($C$5:$C$36)>0)*(($B$5:$B$36)>0)*($A$5:$A$36>=F16)*($A$5:$A$36<=F17)*NON(ESTERR((DATEDIF($B$5:$B$36;$C$5:$C$36;"d")))))

ou cette autre :

=SOMMEPROD((($A$5:$A$36)>0)*(($C$5:$C$36)>0)*(($B$5:$B$36)>0)*($A$5:$A$36>=F16)*($A$5:$A$36<=F17)*SI(NON(ESTERR((DATEDIF($B$5:$B$36;$C$5:$C$36;"d"))));DATEDIF($B$5:$B$36;$C$5:$C$36;"d");0))

Bon enfin c'est juste un embryon d'idée...

Sinon, pour le petit plus, il y a toujours à gagner à remplacer des formules complexes.

personnellement la formule ayant vraisemblablement un impact limité, je me contenterai d'encapsuler la formule dans une formule nommée (Insertion / Nom / Définir)

La situation serait sans doute bien différente si tu travaillais sur des milliers de lignes, mébon...

Pour la route une petite démo avec formule "encapsulée" (avec la même réserve sur l'évaluation du résultat car je ne sais pas l'évaluer...

https://www.excel-pratique.com/~files/doc/TEST_pr_ForumG.xls

(j'ai fait deux lignes de résultats l'une avec la première formule l'autre avec la deuxième...)

A+

Merci beaucoup Galopin,

Je ne connaissais pas la formule esterreur qui est tres utile dans mon cas et convient parfaitement a ce que je cherchais (mais quand on sait pas ce qu'on cherche, pas facile de trouver ). Juste pour info, la formule qui correspond exactement a ce que je cherchais a faire est la "SLF".

j'ai pas des milliers de lignes mais quelques centaines, la demande de VBA c'est surtout pour moi pour comprendre comment ca marche et pouvoir m'y mettre un peu avec des exemples que je comprends et que je peux comparer aux formules. Du coup je vais laisser le sujet ouvert un petit peu au cas ou quelqu'un aurait un peu de temps a perdre, Mais ma question a ete totalement resolue.

Merci encore Galopin et merci a ceux qui se sont interesse au sujet.

Vincent

Salut le forum

VinceL, tu n'oublies pas une petite formalité ...

  • Dès que votre problème est résolu, merci de le marquer en tant que [Résolu]
    grâce à l'utilitaire se trouvant en bas de page, aperçu :
Mytå
Rechercher des sujets similaires à "condition sommeprod"