Calcul du nombre de semaines

  • Initiateur de la discussion Initiateur de la discussion Blafi
  • Date de début Date de début

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 !

Blafi

XLDnaute Occasionnel
Bonjour à tous,

Pour faire suite à ma demande d'hier pour savoir comment calculer le nombre de semaines entre 2 dates et à la réponse qui m'a été faite par Lio(merci à lui et à Monique), j'ai suivi la solution donnée par Monique qui m'avait été proposée.

J'ai donc fais mes calculs avec sa formule et ça marche bien...

Par contre j'ai voulu faire les mêmes calculs en créant 2 macros fonctions : ma première macro fonction (NbSemaines) donne un résultat identique aux calculs de Monique.
Par contre, ma 2ème macro fonction (NbSemaines2) donne une différence de 2 semaines par rapport aux calculs de Monique...

J'ai sans doute fait une erreur dans la formule de ma macro fonction mais je n'arrive pas à la trouver...

Quelqu'un peut-il me dire ou se situe l'erreur ??

Je joins mon fichier dans lequel j'ai pris 2 dates très simples comme exemple.

Merci d'avance aux champions d'excel qui pourront m'éclairer...
A +


[file name=Nbsemaines.zip size=8071]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Nbsemaines.zip[/file]

Message édité par: blafi, à: 09/05/2006 23:55
 

Pièces jointes

Bonsoir Blafi, bonsoir à toutes et à tous 🙂

Petite erreur due à la différence de valeur VRAI/True en formule/VBA.

Dans les feuilles de calculs, VRAI est interprété comme le chiffre 1 dans les calculs, mais sous VBA, la valeur TRUE est égale à -1 :huh:

Il te suffit donc de modifier ta formule ainsi :

NbSemaines2 = (JourF - ((JourF + 6) Mod 7) - (JourD - ((JourD + 5) Mod 7) - (Weekday(JourD) ‹› 2) * 7) + 1) / 7

ou, encore mieux car plus facile à déchiffrer :

NbSemaines2 = (JourF - ((JourF + 6) Mod 7) - (JourD - ((JourD + 5) Mod 7) + IIf(Weekday(JourD) ‹› 2, 7, 0) + 1) / 7

Il fallait le savoir... et maintenant, tu le sais 😛

PS : les signes inférieurs et supérieurs sont à remplacer par leurs équivalents clavier pour le cas où tu ferais un Copier/Coller.

A+ 😉

Message édité par: Charly2, à: 10/05/2006 00:39
 
Merci Charly2 pour ta réponse rapide...

Je connaissais la chose mais ça ne m'a pas interpellé car j'avais pas tout compris...

Maintenant je vais m'en rappeler ... Encore merci et à bientôt.
 
Salut,

''..la formule est bonne ...''

Si l'on prend les 2 dates suivantes :
Début : dim 01/01/2006
Fin : sam 07/01/2006
Le nbre de semaines complètes (Lundi au Dimanche) est égal à 0
Es-tu sur que ta fonction renvoie ce résultat ?
Pour retranscrire très exactement une fonction de feuille en vba, il faut utiliser la fonction Evaluate : [file name=Nbsemaines_20060510081700.zip size=8095]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Nbsemaines_20060510081700.zip[/file]
 

Pièces jointes

- 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
16
Affichages
1 K
Retour