From 4d6135c642a7849b3f34b654bcdd52fe15dbbf34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Louis-Aim=C3=A9=20de=20Fouqui=C3=A8res?= Date: Sun, 3 Jun 2018 23:07:34 +0200 Subject: [PATCH] Update from English version --- Lisezmoi.txt | 260 ++++++++++++++++++++++++++++++++------------------- 1 file changed, 166 insertions(+), 94 deletions(-) diff --git a/Lisezmoi.txt b/Lisezmoi.txt index ee6082e..8cba286 100644 --- a/Lisezmoi.txt +++ b/Lisezmoi.txt @@ -1,121 +1,193 @@ Package MilesianCalendar for Excel - M2017-06-15 -Dernière mise à jour M2018-01-21 +Dernière mise à jour M2018-06-13 Modules permettant des actions en langage VBA pour Excel. -Source rédigé en anglais. +Source rédigé en anglais. Auteur: Miletus SARL 2017-2018 (www.calendriermilesien.org). -Transformation et adaptation sous réserve de citation de l'auteur. -Intégration possible dans une offre ou sur un support, sous réserve de citation de l'auteur et du site. -Testé sur Excel 2016 (Office 365) français, MS Windows et IOS. -Testé sur Excel 2007 Windows français. -Fonctionnement en Date1904 vérifié sur plate-forme Windows. -Note: Excel 2016 IOS (avec capacité des macros) positionne l'option Date1900 par défaut. +Transformation et adaptation sous réserve de citation de l'auteur. +Intégration possible dans une offre ou sur un support, sous réserve de citation de l'auteur et du site. +Testé sur Excel 2016 (Office 365) français, MS Windows et IOS. +Testé sur Excel 2007 Windows français. +Fonctionnement en Date1904 vérifié sur plate-forme Windows. +Note: Excel 2016 IOS (avec capacité des macros) positionne l'option Date1900 par défaut. Mise en service: -1. Créez un fichier Excel, sauvegardez-le avec le type "Fichier Excel prenant en charge les macros". -2. Si vous ne voyez pas le menu "Développeur", validez l'accès à ce menu dans vos options. -3. Dans le menu "Développeur", choisissez "Visual Basic" à l'extrême gauche. +1. Créez un fichier Excel, sauvegardez-le avec le type "Fichier Excel prenant en charge les macros". +2. Si vous ne voyez pas le menu "Développeur", validez l'accès à ce menu dans vos options. +3. Dans le menu "Développeur", choisissez "Visual Basic" à l'extrême gauche. 4. Une feuille Visual Basic s'ouvre. Dans le menu "Fichier" de cette feuille, choisissez "Importer un fichier". -5. Importez les fichiers nnn.bas que vous souhaitez utilisez. Il n'y a pas d'inconvénients à les importer tous. -6. Après import, les modules correspondant aux fichiers importés sont visibles. Vous pouvez consulter le code, qui est commenté. +5. Importez les fichiers nnn.bas que vous souhaitez utilisez. Il n'y a pas d'inconvénients à les importer tous. +6. Après import, les modules correspondant aux fichiers importés sont visibles. Vous pouvez consulter le code, qui est commenté. 7. Retournez dans votre feuille Excel avec la commande "Fermer et retourner dans Excel" du menu "Fichier" de la feuille Visual Basic. -8. Dans votre fichier Excel, vous pouvez appeler les fonctions des modules créés. +8. Dans votre fichier Excel, vous pouvez appeler les fonctions des modules créés. Utilisation des fonctions: -Vous pouvez retrouver les fonctions importées en cliquant le bouton "Insérer une fonction" de la barre de saisie. -- Sélectionnez la catégorie "Personnalisées". +Vous pouvez retrouver les fonctions importées en cliquant le bouton "Insérer une fonction" de la barre de saisie. +- Sélectionnez la catégorie "Personnalisées". - Les fonctions apparaissent. -- Si vous choisissez une fonction, la liste des variables apparaît (sans aide dans la version actuelle). -Les fonctions sont sensibles à l'option avancée "Calendrier depuis 1904" positionnée par défaut dans la version MacOS de MS Excel et modifiable. +- Si vous choisissez une fonction, la liste des variables apparaît (sans aide dans la version actuelle). +Les fonctions sont sensibles à l'option avancée "Calendrier depuis 1904" positionnée par défaut dans la version MacOS de MS Excel et modifiable. + +Considérations sur les expressions de date en Microsoft Excel +- Excel pour MacOS ne gère pas VBA jusqu'à la version 2013. +- Le timbre à date Excel est un nombre décimal de jours, comptés à partir du 30/12/1899 à 00:00, +en calendrier grégorien et sans gestion d'heure locale, y compris pour Excel sous MacOS depuis 2013. +- Expressions de dates du 1/1/1900 au 29/2/1900: MS Excel les convertit à tort +en un numéro représentant le jour précédent, et affiche ces numéros de série en dates décalées d'un jour. +Toutefois, ces expressions de dates maintenues en tant que texte (avec une quote) et passées à VBA +sont correctement converties. +- Expressions de date du 1/1/100 (grégorien) au 31/12/1899: Excel le ne convertit pas, +mais VBA les convertit en un nombre négatif de type Date. Excel les affiche en ############. +- Expressions de dates antérieures au 31/12/1899 et comportant une composante horaire: +Excel retire au timbre à date la partie décimale représentant l'heure, au lieu de l'ajouter. +- Date la plus ancienne: 1/1/100 (grégorien), date la plus éloignée: 31/12/9999 à 23:59:59. +- Avec l'option Date1904 sur d'anciennes feuilles MacOS: Les dates antérieurs à 1/1/1904 provoquent une erreur + +Certaines fonctions permettent de pallier certains de ces problèmes. + Architecture des modules: - MilesianCalendar: Lire et décomposer une date en milésien, et créer une date à partir des coordonnées jour, mois, année en milésien. - MilesianMoon: Calculs de phases de lune à partir d'une date. + MilesianCalendar: Lire et décomposer une date en milésien, et créer une date à partir des coordonnées jour, mois, année en milésien. + MilesianMoonPhase: Calculs de phases de lune à partir d'une date. -Les modules sont indépendants l'un de l'autre +Les modules sont indépendants l'un de l'autre -Les fonctions utilisables et leurs paramètres, par module: +Les fonctions utilisables et leurs paramètres, par module: #MilesianCalendar -MILESIAN_IS_LONG_YEAR: Booléeen, indique si l'année milésienne est abondante. -Une année milésienne abondante est une année qui précède une année bissextile. -La règle d'intercalation milésienne est appliquée, donc les années: -4001, -801, 2399, 5599 etc. sont non abondantes. -A part ces cas, ce sont les règles grégoriennes qui s'appliquent. -Paramètre: - Year, année dont on cherche à déterminer le type - -MILESIAN_YEAR_BASE: Date Excel correspondant à la base d'une année c'est à dire le jour précédent le 1 1m de l'année. -Résultat entre 20/1/1900 et une date en 9999. -Paramètre: - Year : Année milésienne dont la base est recherchée. - -Les autres fonctions sont analogues à des fonctions de la catégorie "Date et heure" d'Excel. -Les dates calculées en option ordinaires peuvent être des nombres négatifs, le minimum correspondant au 1/1/100 grégorien. -Ces dates antérieures à 1900 ne sont pas affichées par Excel, mais on peut les gérer et notamment les afficher en milésien. -Ceci n'est toutefois possible, sous Excel Windows, que si l'option Date1904 est décochée. -Avec l'option Date1904 cochée, les dates antérieurs à 1/1/1904 provoquent une erreur. - -MILESIAN_DATE: Date Excel correspondant à une date milésienne dont les éléments sont donnés en paramètres. -Résultat (affiché) entre 1/1/1900 et 31/12/9999, et correctement calculé à partir du 1/1/100 en grégorien proleptique. -Les deux premiers mois de 1900 affichés en grégorien par Excel sont faux (erreur Microsoft connue). -La date est entière, l'heure est 00h. -Paramètres: - Year: Année milésienne (>=100, comptée dans l'ère commune) - Month: numéro du mois (1 à 12) - DayInMonth: Quantième dans le mois (1 à 31) -Si le triplet ne correspond pas à une date valide, la fonction retourne une erreur. - -MILESIAN_YEAR: Année milésienne d'une date Excel (Minimum 100 en version non Date1904, minimum 1904 en version Date1904) -Paramètre: - ExcelDate: date Excel, qui peut être une date et heure, seule la date (partie entière) est considérée. - -MILESIAN_MONTH: Numéro de mois milésien d'une date Excel (1 à 12) -Paramètre: - ExcelDate: date Excel, qui peut être une date et heure: seule la date est considérée - -MILESIAN_DAY: Quantième dans le mois milésien d'une date Excel (1 à 31) -Paramètre: - ExcelDate: date Excel, qui peut être une date et heure: seule la date est considérée - -MILESIAN_DISPLAY: Une chaîne de caractères exprimant la date milésienne d'une date Excel -Paramètre: - ExcelDate: date Excel, qui peut être une date et heure: seule la date est considérée - -MILESIAN_MONTH_SHIFT: Date de même quantième, n mois avant ou après une date donnée. -Même fonctionnement que la fonction standard MOIS.DECALER. -Si le quantième de la date de départ est le 31, le quantième d'arrivée est celui du dernier jour du mois. -Paramètres: - ExcelDate: date Excel de départ; - MonthShift: nombre de mois de décalage, positif (futur) ou négatif (passé). - -MILESIAN_MONTH_END: Date de fin de mois milésien, n mois avant ou après une date donnée. -Même fonctionnement que la fonction standard FIN.MOIS (qui cherche une fin de mois grégorien). -Paramètres: - ExcelDate: date Excel de départ; - MonthShift: nombre de mois de décalage, positif (futur) ou négatif (passé). +Fonctions semblables aux fonctions standard d'Excel: +- Elles sont calquées sur des fonctions de la catégorie Date et Heure +Les dates calculées en option ordinaires peuvent être des nombres négatifs, le minimum correspondant au 1/1/100 grégorien. +Ces dates antérieures à 1900 ne sont pas affichées par Excel, mais on peut les gérer et notamment les afficher en milésien. +Ceci n'est toutefois possible, sous Excel Windows, que si l'option Date1904 est décochée. +Avec l'option Date1904 cochée, les dates antérieurs à 1/1/1904 provoquent une erreur. +Ces fonctions sont les suivantes (voir aussi infra) +* MILESIAN_YEAR, MILESIAN_MONTH, MILESIAN_DAY: Eléments de date milésienne d'un timbre à date. +* MILESIAN_DATE (Year, Month, Day_in_month): le timbre à date (à 00:00) à partir des éléments d'une date milésienne. +* MILESIAN_TIME: la composante horaire d'un timbre à date; fonctionne aussi pour des dates antérieures au 30/12/1899. +La composante horaire est toujours la partie fractionnaire positive, même si le timbre à date est négatif. +* MILESIAN_DISPLAY (Date, Wtime) : une chaîne de caractères exprimant la date en milésien. +Si le paramètre optionel Wtime is vrai ou absent, la composante horaire est affichée. +* MILESIAN_MONTH_END : comme MONTH.END (MOIS.FIN). +* MILESIAN_MONTH_SHIFT : comme MONTH.SHIFT (MOIS.DECALER). + +MILESIAN_IS_LONG_YEAR: Booléeen, indique si l'année milésienne est abondante. +Une année milésienne abondante est une année qui précède une année bissextile. +La règle d'intercalation milésienne est appliquée, donc les années: -4001, -801, 2399, 5599 etc. sont non abondantes. +A part ces cas, ce sont les règles grégoriennes qui s'appliquent. +Paramètre: + Year : année dont on cherche à déterminer le type + +MILESIAN_YEAR_BASE: Date Excel correspondant à la base d'une année c'est à dire le jour précédent le 1 1m de l'année. +Résultat entre 20/1/1900 et une date en 9999. +Paramètre: + Year : Année milésienne dont la base est recherchée. + +JULIAN_EPOCH_COUNT (Date) : jour julien (décimal) correspondant à une date +Paramètre: + Date: la date à convertir + +JULIAN_EPOCH_DATE (Count) : date (et heure) correpondant au jour julien décimal +Paramètre: + Count: jour julien, nombre décimal + +DAYOFWEEK_Ext (Date, Option): n° de jour de semaine, selon une option étendue. +Paramètres: + Date: la date dont on cherche le jour de semaine + Option (optionnel) : un nombre, 0 par défaut. + 0 (défaut): 0 = dimanche, 1 = lundi, etc., 6 = samedi. + 1 (défaut avec JOURDESEMAINE pour Excel) : 1 = dimanche, 7 = samedi. + 2, 3, 11 à 17: mêmes effets qu'avec JOURDESEMAINE. + +EASTER_SUNDAY (Year) +Date du dimanche de Pâques selon le comput grégorien. +Paramètres: + Year: année pour laquelle on fait le calcul. Un nombre entier, plus grand que 1582. + +DATE_Exceltype (Cell_Date) +Convertit toute cellule contenant un élément de date, y compris d'une ancienne feuille en mode Date1904, +en un timbre à date exact. +Paramètre: + Cell_Date: la date à convertir, le plus souvent une cellule. + +MILESIAN_DATE: Date Excel correspondant à une date milésienne dont les éléments sont donnés en paramètres. +Résultat (affiché) entre 1/1/1900 et 31/12/9999, et correctement calculé à partir du 1/1/100 en grégorien proleptique. +Les deux premiers mois de 1900 affichés en grégorien par Excel sont faux (erreur Microsoft connue). +La date est entière, l'heure est 00h. +Paramètres: + Year: Année milésienne (>=100, comptée dans l'ère commune) + Month: numéro du mois (1 à 12) + DayInMonth: Quantième dans le mois (1 à 31) +Si le triplet ne correspond pas à une date valide, la fonction retourne une erreur. + +MILESIAN_YEAR: Année milésienne d'une date Excel (Minimum 100 en version non Date1904, minimum 1904 en version Date1904) +Paramètre: + ExcelDate: date Excel, qui peut être une date et heure, seule la date (partie entière) est considérée. + +MILESIAN_MONTH: Numéro de mois milésien d'une date Excel (1 à 12) +Paramètre: + ExcelDate: date Excel, qui peut être une date et heure: seule la date est considérée + +MILESIAN_DAY: Quantième dans le mois milésien d'une date Excel (1 à 31) +Paramètre: + ExcelDate: date Excel, qui peut être une date et heure: seule la date est considérée + +MILESIAN_DISPLAY: Une chaîne de caractères exprimant la date milésienne d'une date Excel +Paramètre: + ExcelDate: date Excel, qui peut être une date et heure: seule la date est considérée + +MILESIAN_MONTH_SHIFT: Date de même quantième, n mois avant ou après une date donnée. +Même fonctionnement que la fonction standard MOIS.DECALER. +Si le quantième de la date de départ est le 31, le quantième d'arrivée est celui du dernier jour du mois. +Paramètres: + ExcelDate: date Excel de départ; + MonthShift: nombre de mois de décalage, positif (futur) ou négatif (passé). + +MILESIAN_MONTH_END: Date de fin de mois milésien, n mois avant ou après une date donnée. +Même fonctionnement que la fonction standard FIN.MOIS (qui cherche une fin de mois grégorien). +Paramètres: + ExcelDate: date Excel de départ; + MonthShift: nombre de mois de décalage, positif (futur) ou négatif (passé). -#MilesianMoon +#MilesianMoonPhase -Calcul de dernière ou de prochaine lune. Marge d'erreur de 6 heures pour +/- 3000 ans à partir de l'an 2000 -(en réalité on ne peut calculer avant l'an 100 avec Excel). +Calcul de dernière ou de prochaine lune. Marge d'erreur de 6 heures pour +/- 3000 ans à partir de l'an 2000 +(en réalité on ne peut calculer avant l'an 100 avec Excel). -LastMoonPhase: La date de la dernière nouvelle lune, ou de la dernière phase lunaire spécifiée. -L'horodatage est en heure TT, très proche de l'heure UTC à nos époques. -Le calcul est fondée sur une lune moyenne linéaire (non corrigée). La nouvelle lune moyenne de référence est la première de l'an 2000. -Paramètres: - FromDate: jour auquel on se réfère ; - MoonPhase (=0 si non présent): 0=nouvelle lune, 1=premier quartier, 2=pleine lune, 3=dernier quartier, +LastMoonPhase: La date de la dernière nouvelle lune, ou de la dernière phase lunaire spécifiée. +L'horodatage est en heure TT, très proche de l'heure UTC à nos époques. +Le calcul est fondée sur une lune moyenne linéaire (non corrigée). La nouvelle lune moyenne de référence est la première de l'an 2000. +Paramètres: + FromDate: jour auquel on se réfère ; + MoonPhase (=0 si non présent): 0=nouvelle lune, 1=premier quartier, 2=pleine lune, 3=dernier quartier, erreur pour toute autre valeur de MoonPhase. -NextMoonPhase: Le date de la prochaine nouvelle lune, ou de la prochaine phase lunaire spécifiée. -L'horodatage est en heure TT, très proche de l'heure UTC à nos époques. -Le calcul est fondée sur une lune moyenne linéaire (non corrigée). -La nouvelle lune moyenne de référence est la première de l'an 2000. -Paramètres: - FromDate: jour auquel on se réfère ; - MoonPhase (=0 si non présent): 0=nouvelle lune, 1=premier quartier, 2=pleine lune, 3=dernier quartier, +NextMoonPhase: Le date de la prochaine nouvelle lune, ou de la prochaine phase lunaire spécifiée. +L'horodatage est en heure TT, très proche de l'heure UTC à nos époques. +Le calcul est fondée sur une lune moyenne linéaire (non corrigée). +La nouvelle lune moyenne de référence est la première de l'an 2000. +Paramètres: + FromDate: jour auquel on se réfère ; + MoonPhase (=0 si non présent): 0=nouvelle lune, 1=premier quartier, 2=pleine lune, 3=dernier quartier, erreur pour toute autre valeur de MoonPhase. + +#DateParse +Ce module ne contient qu'une fonction, un parseur de chaîne de caractères, capable d'interpréter +une chaîne (avec une date sous forme numérique) en tant que date grégorienne ou milésienne. + +DateParse (Chaîne): Date (timbre à date) correspondant à une expression de date. +Paramètre: + Chaîne: l'expression à interpréter comme date. +L'expression de date est milésienne soit si le chiffre de mois finit par "m" (sans zéro initial au nom de mois), +soit si la chaîne complète commence par "M", auquel cas les éléments de dates sont dans l'ordre année, mois, quantième. +Avec Excel, aucune date antérieure à l'année 100 n'est traitée. +Le séparateur entre éléments de dates est le même, sauf éventuellement une virgule ajoutée à un blanc. +On peut ne spécifier que deux éléments de date, mais il faut inclure le mois. +Si spécifiée, la date comprend au moins 3 chiffres, c'est ainsi qu'on la reconnaît. +Si elle est absente, l'année est "l'année courante". +Si le quantième est absent, la fonction le fixe à 1. +Les expressions de date entre 1/1/1900 et 28/2/1900 sont analysés correctement.