Formule Excel sous VBA

Bonjour à tous,

Je tente de convertir une formule excel en code vba

la formule excel à convertir

'=NB.SI.ENS(T_Tasks[Due Date];">="&AUJOURDHUI()- JOURSEM(AUJOURDHUI();2)+1; T_Tasks[Due Date];"<="&AUJOURDHUI()- JOURSEM(AUJOURDHUI();2)+7)

je tente de commencer la formulation mais je bloque sur la suite..

'Sheets("DashBoard").Range("BU5") = Application.CountIfs(Range("T_Tasks[Due Date]"), ">=" &Date -

quelqu'un aurait il une idée de comment procéder?

Merci par avance

bonne journée

@+

Bonjour,

Tu es sur la bonne voie, tu peux utiliser WeekDay() en remplacement de JOURSEM().

Un lien utile : http://boisgontierj.free.fr/pages_site/FonctionsDates.htm

merci;

j'ai progressé et arrive à cette formule:

Sheets("DashBoard").Range("BU5") = Application.CountIfs(Range("T_Tasks[Due Date]"), ">=" & Date - Weekday(Date, 2) + 1, Range("T_Tasks[Due Date]"), "<=" & Date - Weekday(Date, 2) + 7)

seulement voila ca me retourne 0 en resultat alors que ca devrait me retourner 1 (tout comme ma formule excel)

une idée svp?

merci par avance

Tu peux découper ta formule en plusieurs briques pour contrôler chacune d'entre elle avec une exécution pas à pas du code ou des msgbox. Par exemple :

msgbox "Nombre de cellule dans la colonne :" & Range("T_Tasks[Due Date]").Count & " (plage " & Range("T_Tasks[Due Date]").Address & ")"
msgbox "Aujourd'hui correspond au " & Weekday(Date, 2) & "ème jour de la semaine"
msgbox "Date initiale : " & format(Date - Weekday(Date, 2) + 1, "dd/mm/yyyy")
msgbox "Date finale : " & format(Date - Weekday(Date, 2) + 7, "dd/mm/yyyy")

Cela te donneras des pistes sur les éventuelles erreurs dans ta formule.

merci

pour le coup la première ligne me génère une erreur 400 et les autres me retourne les bons résultats

merci

pour le coup la première ligne me génère une erreur 400 et les autres me retourne les bons résultats

Je n'ai pas de réponse toute faite, tente des fonctions différentes, contrôle la syntaxe de ta plage, etc.

merci à vous pour votre aide

j'ai fini par trouvé mon erreur

il me fallait juste ajouter clng(Date) à 2 endroits

cette version me renvoi désormais le bon résultat :)

Sheets("DashBoard").Range("BU5") = Application.CountIfs(Range("T_Tasks[Due Date]"), ">=" & clng(Date) - Weekday(Date, 2) + 1, Range("T_Tasks[Due Date]"), "<=" & clng(Date) - Weekday(Date, 2) + 7)

Le plus satisfaisant reste de trouver sois même la solution !

Merci d'avoir indiqué la réponse ici, ça pourra toujours servir à d'autres

Rechercher des sujets similaires à "formule vba"