XL 2016 calcul de nombre de lundis ....... dimanches entre 2 dates via un formulaire

dindin

XLDnaute Occasionnel
Bonjour le Forum,
j'ai récupéré une fonction sur internet qui sert à calculer le nombres des lundis entre 2 dates.
j'ai essayé de l'adapter dans un formulaire avec des cases à cocher.
lors des plusieurs vérifications, j'ai remarqué que le résultat est parfois erroné, comme dans cette exemple:
1642855676419.png

le formulaire affiche 21 jours si on sélectionne tous les jours de la saamine sachant qu'en réalité il devrait afficher 16.

dans ce prochain exemple on doit calculer les nombre de mercredis , vendredis et samedis entre le 26 janvier et 15 mai, le calcul est juste
1642855968370.png

par l'occasion je tiens à remercier beaucoup le développeur de ce formulaire d'insertion de date qui m'a fait gagné beaucoup de temps dans mon travail de tous les jours
1642856218374.png



Pouvez-vous m'aider à trouver d'où vient l'erreur.
désolé pour ce code trop long, je débuté avec VBA.
je joins le fichier en question
Merci pour votre aide
 

Pièces jointes

  • calcul nombre de jours entre 2 dates.xlsm
    91.9 KB · Affichages: 5

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour @patricktoulon

Surtout pour te saluer :);)

Je n'ai pas utilisé de module de classe. Je préférais montrer une méthode en nommant "astucieusement" les contrôles même si ici il est naturel, comme tu l'as fait, d'utiliser un module de classe (en l’occurrence Userform1)
Il faudrait ajouter dans ta solution l'état de l'option "Tous les jours" en fonction de ce que tous les jours sont cochés ou non (un tristate peut-être)
Mais tout ceci n'est que bavardage et titillement 😜. Bonne journée @patrick
 

patricktoulon

XLDnaute Barbatruc
bonjour @mapomme
oui j'utilise une classe event intra userform
les checkbox lundi à dimanche porte comme tag l'index du jour
le checkbox tout_les_jours met a false ou true tout les autres
dans l'event unique je concat les tag des checkbox qui sont à true
ensuite je boucle de la date1 jusqu'a date2 par pas de 1(jour)
et je détermine l'index de jour avec weekday de chaque date d1 et je test le instr du jour dans le concat
terminé le tour est joué
c'est assez simple comme raisonnement
 

dindin

XLDnaute Occasionnel
Re @dindin,

Chose promise, chose due 😉.

Un .doc pour les principes.
Un .xlsm avec le code commenté.

nota: si pas clair, me le signaler...
Bonjour Mapomme

Il faut rendre à César ce qui appartient à César

je viens de rajouter votre formulaire à mon fichier de travail en mentionnant votre pseudo

1643018372865.png

avec tous mes remerciements pour cet excellent travail
un grand merci aussi à

patricktoulon pour son code aussi excellent​


Dindin
 

Discussions similaires

Réponses
9
Affichages
511