Fonction qui coince pour obtenir la date du dernier dimanche du mois

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 !

Magic_Doctor

XLDnaute Barbatruc
Bonsoir à tous,

J'ai essayé de réaliser une fonction permettant de connaître la date d'un jour quelconque de la semaine quelle que soit sa position dans un mois donné (par exemple : 3ème lundi du mois de mars 2009). Si cette position va au-delà du mois en question, on obtiendra la date correspondante (par exemple 63ème dimanche après le début du mois choisi comme paramètre de la fonction).
La fonction a l'air de bien marcher, sauf concernant l'option de trouver la date du dernier dimanche (par exemple) d'un mois donné. Suivant les années elle peut se tromper d'une semaine.
Cette fonction est prévue pour fonctionner en français, anglais et espagnol. Afin d'éviter les erreurs, elle fait appel à une autre fonction (de Ti) qui supprime tous les accents. Mercredi en espagnol s'écrit miércoles, on peut très facilement oublier l'accent sur le e. Idem pour février en français.

Merci pour toute aide au sujet de cette fonction.
 

Pièces jointes

Re : Fonction qui coince pour obtenir la date du dernier dimanche du mois

Bonjour à tous, bonjour Roger,

J'ai donc essayé les 2 formules proposées par Roger et la première semble mieux faire l'affaire.
Mais quant à la traduire en VBA... c'est une toute autre histoire, d'autant que je n'y ai pratiquement rien compris dans la syntaxe.

=B2+(HALLAR(IZQUIERDA(D2;2);"lumamejevesadi")-1)/2-DIASEM(B2;3)+7*(K2+(K2=0)*((HALLAR(IZQUIERDA(D2;2);"lumamejevesadi")-1)/2<DIASEM(B2;3)))

Bon, elle est ici en espagnol, mais peu importe.
N'étant pas un spécialiste des formules, que signifie, par exemple K2+(K2=0) ??

Une chose est certaine : elle marche, mais de là la comprendre pour ensuite la traduire en VBA sans passer par l'enregistreur de macro qui donne forcément des références du type RC[-12]...

Décidément, jongler avec les semaines sur Excel est loin d'être une cinécure !
 
Re : Fonction qui coince pour obtenir la date du dernier dimanche du mois

Salut,

que signifie K2 + (K2 = 0) 😕

C'est magique :

K2 + (K2=0) = K2 + 0 = K2 quand K2 <> 0 et K2 numérique;
K2 = 0 est FAUX et ici, FAUX = 0.

K2 + (K2=0) = K2 + 1 = 1 quand, soit K2 = 0, soit K2 = "";
K2 = 0 est VRAI et ici, VRAI = 1.

Exemple :
si K2 = 1, K2 = 0 est FAUX donc K2 + (K2=0) = K2 + 0 = K2 = 1 !

Le tournis ? Vite, un cachet Docteur !

Cela correspond encore à SI(K2 <> 0 ; K2 ; 1) à la différence prés, qu'ici, K2 peut n'être pas numérique (pas d'erreur signalée).
 
Re : Fonction qui coince pour obtenir la date du dernier dimanche du mois

Merco Fo Rhum pour cette explication ébrieuse.
Décidément c'est plus abscons que l'embryologie du péritoine !!

Je vais de ce pas me fumer un morceau de moquette pour y voir plus clair.
En fait, sans exemple concret, cette syntaxe est plutôt duraille à capter. Pas étonnant qu'on ne l'a voit qu'à chaque mort d'évèque, ou même de Pape...

Mais merci quand même !
 
Re : Fonction qui coince pour obtenir la date du dernier dimanche du mois

Bonjour le forum matinal (il n'est que 1h 30 du mat chez moi...),

J'ai quand même un chouïa étudié les explications de Fo Rum et ai mieux compris la subtilité de cette syntaxe. Mais ça doit mûrir encore un peu près de la scissure de Sylvus...

Merci encore à Roger qui a eu la gentillesse de m'adresser les explications de la formule qu'il m'avait proposée.
Un peu déconcerté par la complexité de celle-ci, je me suis dit qu'il fallait revenir à la case précédente, autrement dit la solution que vous m'aviez envoyée le 5 Germinal CCXVII.
Tout était parfait, au détail près de la date qui pouvait dépasser celle où apparaissait pour la dernière fois dans le mois le jour de la semaine choisi (comprendront ceux qui auront suivi la saga...). Suivant vos conseils, j'ai pris un papier + un crayon gras (j'aime les mines grasses), ai expiré profondément en attendant l'inspiration. Résultat au 1er étage :
je me suis débarrassé d'un paramètre (et hop un de moins !) pour assujettir sa valeur à celle de "RangJourSemaine" qui, dans le fond, n'avait aucune raison d'avoir comme valeur 0.
La fonction a l'air de fonctionner.
Autant dire que sans votre aide je n'y serais jamais arrivé !
Bonne nuit ou bonne journée... car avec ces p... de décalages horaires de m... je ne sais plus !!
 

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
0
Affichages
291
Réponses
0
Affichages
416
Retour