L'add-in CalDate.xla (v 1.7) pour Excel |
|
Les fonctions ajoutées à Excel
calDate.xla ajoute de très nombreuses fonctions à Excel qui permettent de torturer les dates dans tous les sens. Pour découvrir l'intégralité des fonctions, regardez l'aide jointe dans le fichier PDF. Pour résumer, voici les fonctions principales.
Le format des dates
calDate comprend les dates écrites sous une forme standard :
1) pour les dates des calendriers julien et grégorien :
- jj/mm/aaaa : par exemple 24/12/1654 (avec aaaa > 500)
2) pour les dates du calendrier républicain :
- jj/MMMM/aaa : par exemple 15/FRUC/7 (MMMM = 4 premières lettres du mois)
- jj/mm/aaa : par exemple 12/11/13 (12 Thermidor AN 13) si aaa<500
- éventuellement, vous pouvez préciser le mot AN après le mois, 14/FRUC/AN 8
Les autres écritures des dates ne sont pas prises en compte. Vous pouvez toutefois insérer un espace devant la date (ou une apostrophe) pour empécher Excel d'interpréter automatiquement une date postérieure à 1900.
Dans ses résultats, calDate retourne la date sous la forme :
- jj/mm/aaaa : pour les calendriers julien et grégorien
- jj/MMMM/AN aaa : pour le calendrier républicain 14/FRUC/AN 8
Les fonctions principales
Le pivot de calDate est le jour julien. Ce "jour julien" est un nombre qui définit de manière unique une journée, quelquesoit le calendrier dans lequel il est exprimé. Une fois connue la formule de conversion dans un sens et dans l'autre pour chaque calendrier, on peut convertir les dates d'un calendrier dans n'importe quel autre calendrier.
Dans ce qui suit, je suppose que :
- le paramètre ou résultat datetxt est une date exprimée sous forme textuelle (vois paragraphe précédent sur le format des dates)
- le paramètre ou résultat jjul est un jour julien
caldateval(datetxt) = jjul
C'est la fonction principale. Elle permet de convertir une date exprimée dans n'importe quel calendrier en son équivalent en jour julien, sans avoir à se demander dans quel calendrier la date est entrée.
La transition entre le calendrier Julien et Grégorien est celle retenue pour la France (et non celle du Saint Siège), c'est à dire le 09/12/1582-20/12/1582.

Une fois la date convertie en jour julien, vous n'aurez plus aucune difficulté pour trier vos dates. Dans l'exemple ci dessus il suffirait de trier sur la colonne B.
Si vous souhaitez forcer la conversion depuis une date exprimée dans un calendrier particulier, il suffira d'utiliser :
juldateval(datetxt) |
= jjul |
pour forcer le calendrier julien |
gregdateval(datetxt) |
= jjul |
pour forcer le calendrier grégorien |
repdateval(datetxt) |
= jjul |
pour forcer le calendrier républicain |
caldatetxt(jjul) = datetxt
C'est le pendant de la fonction caldateval() : elle fait exactement l'inverse, c'est à dire qu'elle convertit un jour julien en sa forme lisible. Par contre, elle retourne la date exprimée dans le calendrier en vigueur à ce moment. C'est pourquoi les lignes 6, 7 et 8 de l'exemple sont toutes écrites de la même façon.

La particularité de l'an I de la République est expliquée dans le mode d'emploi
Si vous souhaitez forcer le résultat dans un calendrier particulier, vous devrez utiliser les fonctions suivantes :
juldatetxt(jjul) |
= datetxt |
pour forcer le calendrier julien |
gregdatetxt(jjul) |
= datetxt |
pour forcer le calendrier grégorien |
repdatetxt(jjul) |
= datetxt |
pour forcer le calendrier républicain |
calPaques(annee)=jjul
Cette fonction retourne le jour julien du dimanche de Pâques de l'année entrée en paramètre. Il faudra ensuite convertir cette date en format lisible avec la fonction caldatetxt().
Les fonctions de conversion directe
Les fonctions suivantes convertissent directement une date textuelle en retournant une date textuelle.
julgreg(datetxt) |
= datetxt |
du Julien au Grégorien |
julrep(datetxt) |
= datetxt |
du Julien au Républicain |
gregjul(datetxt) |
= datetxt |
du Grégorien au Julien |
gregrep(datetxt) |
= datetxt |
du Grégorien au Républicain |
repjul(datetxt) |
= datetxt |
du Républicain au Julien |
repgreg(datetxt) |
= datetxt |
du Républicain au Grégorien |
Si l'un des calendriers n'était pas défini à cet instant, la fonction retournera 0.
Les fonction d'extraction d'information
Certaines fonctions extraient des informations sur une date particulière. Elles fonctionnent toute à partir du jour julien, donc pour les utiliser, il vous faudra d'abord convertir la date textuelle en jour julien avec la fonction caldateval().
caljour(jjul) |
= quantième |
ex 05/12/1900 => 05 |
calmois(jjul) |
= n° du mois |
ex 05/12/1900 => 12
ex 01/VENT/8 => 6 |
calannee(jjul) |
= année |
ex 05/12/1900 => 1900
ex 17/FRUC/7 => 7 |
caljoursem(jjul) |
= n° de jour de la semaine |
ex 16/06/2005 => 4 (pour Jeudi) |
caljoursemtxt(jjul) |
= nom du jour |
ex 17/06/2005 => Vendredi |
caljourmoistxt(jjul) |
= nom du mois |
ex 10/01/1435 => Janvier
ex 04/BRUM/03 => Brumaire |
|