Accueil Atelier

Entre Nous

Echanges entre utilisateurs d'AppleWorks et groupe de discussion

Atelier

Les trucs et astuces pour mieux utiliser AppleWorks

Télécharger

Mises à jour de ClarisWorks et AppleWorks, logiciels additionnels

Liens

La sélection de liens spécial AppleWorks

AppleWorks Contact !

Recevez gratuitement des informations sur AppleWorks par email

A propos de Ma Pomme...

logiciel :

AppleWorks

version(s) :

4.0 - 5.0 - 6.0

environnement(s) :

feuille de calcul

niveau(x) :

intermédiaire

mis à jour le :

17.01.01


Comment créer un calendrier perpétuel automatique


A propos de cet article

Cet article assez long met en œuvre certaines fonctionnalités parmi les plus pointues d'AppleWorks, mais il a été conçu et écrit dans la perspective de vous guider pas-à-pas. Si vous avez besoin d'un calendrier perpétuel, je vous invite à réaliser ce document : cela représente un investissement de temps initial significatif (comptez au moins une heure pour le réaliser en suivant les instructions). Néanmoins, la mise en page d'un nouveau calendrier ne vous prendra ensuite que quelques secondes, puisque votre calendrier sera généré automatiquement à partir d'un mois et d'une année donnés. Un dernier mot : n'hésitez pas à imprimer cet article particulièrement long pour un meilleur confort de réalisation.

Introduction

L'Assistant Calendrier d'AppleWorks est très pratique, car il permet la création d'un calendrier mensuel en quelques clics. Cependant, le document créé, dans un tableur, est passif : pour l'adapter à un autre mois, vous devez modifier chaque cellule, travail assez fastidieux, ou recréer un autre calendrier avec l'assistant, mais vous perdez alors votre présentation personnalisée. D'autre part, comme vous l'avez constaté vous-même, il n'est pas possible de modifier par défaut la présentation d'un calendrier créé avec l'Assistant du même nom.

En pratique...

L'idéal serait, bien sûr, de créer une fois pour toutes un calendrier que nous qualifierons de dynamique. Impossible fait rarement partie du vocabulaire d'AppleWorks, et vous allez réaliser avec notre aide ce calendrier dynamique. En effet, le principe sera le suivant : à partir de la simple saisie du numéro du mois et de l'année, AppleWorks devra, à l'aide de fonctions idoines, créer de toutes pièces un calendrier, en plaçant les dates en face des noms des jours, et en tenant compte des particularités calendaires.

Vous pouvez utiliser cet article de deux manières complémentaires :

1. Vous ne connaissez pas très bien les fonctions de AppleWorks : suivez pas à pas les instructions, et saisissez strictement les informations indiquées. L'utilisation de certaines fonctions ne sera peut-être pas évidente pour vous : cela n'est pas grave, vous pourrez y revenir ensuite petit à petit, en modifiant les fonctions, et en regardant les effets produits.

2. Vous connaissez déjà un peu l'utilisation des fonctions, mais vous ne les maîtrisez pas sur le bout des doigts. Profitez-en pour apprendre à mieux utiliser les fonctions de date de AppleWorks : n'hésitez pas à faire des essais successifs avec les différentes fonctions proposées, et adaptez ce calendrier à vos propres besoins.

Commencez par choisir Nouveau du menu Fichier, et lancez l'assistant Calendrier. Suivez les instructions affichées, et indiquez le mois d'août 1999 comme modèle, puis validez. Nous avons choisi le mois d'août 1999 comme base à partir de laquelle développer le calendrier dynamique, car ce mois présente des caractéristiques extrêmes : le 1er août est un dimanche, et le mois comporte 31 jours. Aucun autre mois ne pourra donc occuper plus d'espace que celui-là.

Le but à atteindre est de générer un calendrier en saisissant manuellement seulement les données indispensables, à savoir le mois et l'année. Nous décidons arbitrairement que le numéro du mois sera saisi dans la cellule B1, et l'année (sur quatre chiffres) dans la cellule C1 :

Tapez " 7 " dans la cellule B1 (7 est le numéro du mois de juillet) et " 1999 " dans la cellule C1.

Bien entendu, vous pouvez tout à fait librement choisir d'autres cellules pour indiquer ces valeurs, il vous suffira de modifier systématiquement dans les formules qui vont suivre les coordonnées de C1 et B1.

La première information à automatiser avec ce calendrier est l'affichage du nom du mois, en clair et en français. Ce nom va être déterminé par la valeur de la cellule C1, qui contient le numéro du mois. Cela tombe bien : AppleWorks propose une fonction pour réaliser directement cette conversion, c'est la fonction NOMMOIS. Comment fonctionne-t-elle ?

Avant tout, nous vous rappelons qu'un argument est une valeur saisie entre parenthèses après le nom de la fonction. C'est à partir de cette valeur que la fonction va effectuer son action. Suivant les fonctions, vous utilisez un ou plusieurs arguments, séparés par un point-virgule. La fonction NOMMOIS utilise un seul argument : le numéro du mois : 1 pour janvier, 2 pour février, et ainsi de suite.

Il suffit donc de taper, dans la cellule E1, la formule suivante :

=NOMMOIS(B1)

Ce qui signifie que la cellule E1 doit afficher le nom du mois en toutes lettres, à partir de la valeur de la cellule B1. Après avoir saisi votre formule, la cellule E1 affiche " juillet ". Vérifiez maintenant son bon fonctionnement :

1. Cliquez sur la cellule B1, qui contient actuellement la valeur 7.

2. Tapez 10, et validez en tapant retour-chariot, Entrée, ou Tabulation.

3. La cellule E1 affiche maintenant " octobre " ? C'est parfait !

4. Et que se passe-t-il si vous saisissiez une valeur en dehors des limites du calendrier ? Essayez, et tapez maintenant 13 dans la cellule B1, puis validez.

5. #ARG! Et non, AppleWorks ne pousse pas un cri de douleur. Ce message signifie simplement que l'ARGument fournit n'est pas acceptable par cette fonction. Retapez la valeur " 7 " dans la cellule B1 pour retrouver le mois de juillet.

Nous allons nous attaquer maintenant au contenu du calendrier proprement dit. Celui-ci va être réalisé en trois étapes : tout d'abord la première rangée du mois, qui va faire appel à des fonctions simples mais combinées entre elles. Si tout n'est pas clair pour vous à cette étape-là, ne vous inquiétez pas, vous y verrez mieux par la suite. La deuxième étape verra la réalisation des rangées 2 à 4 du calendrier du mois, très simplement. Enfin, la troisième et dernière étape verra la création et la gestion automatique des rangées 5 et 6 du calendrier, c'est assurément le point le plus ardu de cet article. Néanmoins, en prenant votre temps, vous parviendrez à décortiquer le fonctionnement de ces fonctions.

Commencer le mois

La première question que nous sommes amenés à nous poser maintenant est la suivante : comment déterminer où commencer le mois, sachant que d'un mois à l'autre, le 1er du mois variera du lundi au dimanche ? Nous devons réaliser la prouesse de trouver quel sera le premier jour de chaque mois, pour n'importe quel mois de n'importe quelle année, sans erreur possible. Heureusement, le système de votre ordinateur (Mac OS sur Macintosh et Windows sur PC) contient un calendrier précis et exact (si vous avez bien appliqué les mises à jour et patch pour assurer une parfaite compatibilité avec l'an 2000). C'est donc grâce aux fonctions d'AppleWorks que vous allez accéder aux données de ce calendrier.

Notez que lors de la création du calendrier de juillet 1999 avec l'Assistant Calendrier, les numéros des jours ont été inscrits en haut à gauche de chaque jour. Vous allez conserver ces informations pour l'instant, afin de vous repérer plus facilement dans la création de votre calendrier automatique.

Placez-vous dans la cellule B4, qui correspond au premier jour du calendrier... mais pas forcément de chaque mois. AppleWorks contient une fonction permettant de connaître le numéro du jour dans la semaine, d'après une date. C'est la fonction JOURSEMAINE, qui utilise un seul argument, la date sous sa forme numérique. Holà, qu'est-ce qu'une date sous forme numérique ???

Pas de panique ! C'est plus simple qu'il n'y paraît. AppleWorks ne sait manipuler les dates que sous une forme numérique. Qu'est-ce que cela signifie ? Simplement que pour AppleWorks, le début du monde commence le 1er janvier 1904, qui correspond au jour 0 (zéro). Le 2 janvier 1904 est donc le jour 1, le 3 janvier le jour 2, et ainsi de suite. Par exemple, le 1er août 1999 est le jour 34 911. Mais ne vous inquiétez pas, vous n'avez pas besoin de compter manuellement cela. Sachez simplement que toutes les fonctions de AppleWorks qui utilisent comme argument une " date numérique " ont besoin d'une date exprimée ainsi en nombre.

Mais comment retrouver la date sous forme numérique à partir des données dont nous disposons, à savoir simplement l'année et le mois ? Grâce à une autre fonction, la fonction DATE, qui elle utilise trois arguments : l'année, le mois et le jour. Disposons-nous de ces informations ? Eh oui ! L'année est dans la cellule C1, le mois dans la cellule B1, et le jour est connu, puisqu'on cherche ici le premier jour du mois, sa valeur sera donc forcément fixée à 1.

Récapitulons : la fonction JOURSEMAINE sait indiquer le numéro du jour de la semaine (on verra ci-après sous quelle forme) à partir de la date exprimée sous forme numérique. On va obtenir la date sous forme numérique avec l'aide de la fonction DATE, qui va convertir les trois informations distinctes de l'année, du mois et du jour, en une date numérique. Allons-y, nous vous rappelons que nous sommes toujours dans la cellule B4, tapez maintenant :

=JOURSEMAINE(DATE(C1;B1;1))

Notez où se placent les parenthèses, elles servent à indiquer où commencent et où finissent les arguments. Ces derniers, lorsqu'ils sont plusieurs, sont séparés par des points-virgules. Si AppleWorks vous indique le message " Formule incorrecte " après la saisie, cela signifie que vous avez oublié une parenthèse ou un point-virgule, relisez attentivement !

Les arguments de la fonction DATE sont donc bien (C1;B1;1), mais quel est l'argument de la fonction JOURSEMAINE, nous attendions une date numérique ?! Et bien l'argument de la fonction JOURSEMAINE est (DATE(C1;B1;1)). En effet, cette dernière fonction retourne la date sous une forme numérique, et il n'est pas nécessaire que cette date numérique soit visible directement par l'utilisateur pour qu'elle soit parfaitement comprise par la fonction JOURSEMAINE.

À partir du moment où vous fournissez à une fonction ce qu'elle attend, celle-ci réagira correctement. L'origine des données peut être une information directement tapée au clavier par vos soins (par exemple " =JOURSEMAINE(34911)"), un calcul (par exemple "=NOMMOIS(3+5)"), une référence de cellule (par exemple "=JOURSEMAINE(B12) "), le résultat d'une autre fonction (par exemple " =JOURSEMAINE(DATE(C1;B1;1))"), ou encore n'importe quelle combinaison parmi ces différentes possibilités (par exemple " =JOURSEMAINE(12*5232)", "=NOMMOIS(B12+3)", ou encore "=JOURSEMAINE(DATE(C1;3214;B3+C12))").

Bien sûr, plus votre formule va se compliquer, moins sa lecture deviendra évidente. Pour lire facilement une formule et en comprendre le fonctionnement, le principe consiste à commencer par les informations les plus enfermées dans les parenthèses, et à remonter niveau par niveau. Ainsi, dans le dernier exemple, un commencera par lire "(C1;3214;B3+C12) ", puis " DATE(Année;Mois;Jour) " et ainsi de suite.

Vous avez donc saisi la formule " =JOURSEMAINE(DATE(C1;B1;1))" dans la cellule B4, et vous l'avez validé. Si vous avez bien suivi les instructions, votre cellule B4 affiche maintenant la valeur " 5 " . Qu'est-ce que cela signifie ? 5 indique ici le numéro du jour de la semaine. AppleWorks est à l'origine un logiciel américain, et le calendrier américain considère que le premier jour de la semaine est un dimanche. Aussi, la fonction JOURSEMAINE fournit-elle l'équivalence suivante : 1 pour dimanche, 2 pour lundi, 3 pour mardi, et ainsi de suite jusqu'à 7 pour samedi. Aussi, ce chiffre " 5 " dans la cellule B4 signifie jeudi, et indique donc que le 1er juillet 1999 est un jeudi (écran ci-dessous). Vous pouvez le vérifier avec un calendrier de l'année 1999.

Nous avançons, mais nous n'avons pas encore obtenu ce que nous voulions : placer automatiquement le chiffre " 1 " sur le premier jour du mois. Encore un peu de patience, nous avançons en fait plus vite que vous ne le croyez.

Comme nous savons maintenant comment trouver le numéro du jour de la semaine, il suffit d'ajouter une comparaison dans la première rangée pour afficher, ou non, ce jour de la semaine. En effet, nous savons que si le calcul du jour de la semaine produit le résultat "2", alors cela signifiera que le premier jour du mois est un lundi (deuxième jour de la semaine d'après le calendrier américain). Si le résultat est 3, le premier jour du mois sera un mardi, et ainsi de suite.

Revenons dans la cellule B4, et cliquez en haut de la fenêtre, dans la zone qui contient la formule, en plaçant votre curseur juste avant le signe égal (=). Vous connaissez sans doute déjà la fonction SI, qui utilise les arguments suivants :

SI(Condition;Résultat_Vrai;Résultat_Faux)

En clair, l'argument Condition est remplacé par une comparaison. Ici, la comparaison va porter sur le numéro du jour (2 pour lundi, 3 pour mardi...). Si la comparaison est vraie, alors la fonction SI exécute le contenu de l'argument Résultat_Vrai (ce peut être une valeur tapée au clavier, la valeur d'une autre cellule, ou encore le résultat d'une autre fonction). Si la comparaison est fausse, la fonction SI exécute le contenu de l'argument Résultat_Faux.

1. Déplacez votre curseur à droite en tapant une fois sur la touche Flèche Droite de votre clavier pour placer le curseur juste après le signe égal (=).

2. Tapez " SI(" (en ouvrant la parenthèse).

3. Déplacez à nouveau le curseur jusqu'à la fin de la formule actuelle.

4. Tapez " =2;1;"")" et validez. Attention : tapez bien deux guillemets "" à la suite comme indiqué.

Votre formule doit maintenant apparaître sous la forme suivante :

=SI(JOURSEMAINE(DATE(C1;B1;1))=2;1;"")

En validant, vous observez que le chiffre " 5 " auparavant affiché dans la cellule B4 a disparu... Pourquoi donc ? Tout simplement parcequ'AppleWorks a suivi vos consignes à la lettre. Avec votre formule, vous venez en effet de lui donner l'ordre suivant : si le numéro de jour du premier jour du mois est égal à " 2 " (c'est-à-dire à lundi), alors affiche " 1 " (puisque nous sommes dans la case du premier lundi du mois), sinon, n'affiche rien (les deux guillemets "" accolés indiquent à AppleWorks de ne rien afficher).

Est-ce que cela est correct du point de vue du calendrier ? Pour l'instant oui, puisque le 1er juillet 1999 était un jeudi. Il est donc normal que le lundi de la première rangée du calendrier soit vide. Voyons maintenant les jours suivants de cette fameuse première ligne.

Continuons par le mardi, dans la cellule C4. Vous allez procéder au départ exactement comme la cellule précédente, en tapant :

=SI(JOURSEMAINE(DATE(C1;B1;1))=

Mais arrivé au signe " égal ", attention ! En effet, le numéro du jour de la semaine pour le lundi est 2, mais le numéro du jour de la semaine pour le mardi est 3 (et 4 pour le mercredi, 5 pour le jeudi...). Vous allez donc saisir le chiffre " 3 " après le signe " égal ", car vous cherchez maintenant dans cette cellule à effectuer une comparaison pour savoir si la case du mardi doit contenir ou non une date (et laquelle, mais nous verrons cela un peu plus loin). Continuez à saisir votre formule comme suit :

=SI(JOURSEMAINE(DATE(C1;B1;1))=3;1;

Votre formule signifie maintenant : si le numéro du jour dans la semaine de la date du premier jour du mois B1 de l'année C1, est égal à 3 (c'est-à-dire si c'est un mardi), alors afficher la valeur 1. Il vous reste maintenant à indiquer à AppleWorks quoi faire si le numéro du jour n'est pas égal à 3. Dans la formule de la cellule B4 (celle du lundi), rien de plus simple : si la comparaison était fausse, alors on n'affichait rien.

Mais ici, deux hypothèses sont à prévoir :

1. soit le premier jour du mois est un jour après le mardi, alors le mardi doit être vide (c'est la seule hypothèse possible dans la précédente formule de la cellule B4).

2. soit le premier jour du mois est un lundi, alors dans ce cas la cellule du mardi devra indiquer la valeur " 2 " (nous serons alors le 2ème jour du mois).

Comme vous êtes en train de construire un calendrier perpétuel, les deux hypothèses doivent pouvoir être gérées indifféremment l'une de l'autre avec votre formule. Comme déterminer si vous êtes dans un cas ou dans l'autre ? Très simplement en effectuant une nouvelle comparaison, qui se résumera à : si la cellule précédente (B4) est vide, alors ne rien afficher ; sinon, afficher le numéro du jour indiqué dans la cellule B4 plus 1. Vous allez donc continuer votre formule comme suit :

=SI(JOURSEMAINE(DATE(C1;B1;1))=3;1;SI(B4="";"";B4+1))

Si vous éprouvez des difficultés à analyser cette formule, référez-vous à l'écran ci-dessous pour distinguer plus facilement les causes et les conséquences.

Validez maintenant votre formule et observez votre écran. Si les réglages de date sont à juillet 1999, les cellules B4 et C4 n'affichent toujours rien. Vous allez vérifier si tout fonctionne bien, en changeant de date. Tapez " 6 " dans la cellule B1 pour indiquer le mois de juin 1999, et validez. Miracle ! Si vos formules ont été correctement saisies, la cellule C4 affiche maintenant la valeur 1. Et effectivement, le mois de juin 1999 commençait bien par un mardi.

Validons maintenant l'autre hypothèse, celle d'un mois dont le premier jour est un lundi. Tapez " 11 " dans la cellule B1 pour indiquer le mois de novembre. Victoire ! Votre cellule B4 (celle du lundi) affiche " 1 ", et la cellule C4 (celle du mardi) affiche " 2 ". Vous êtes bien parti, et vous allez continuer sur la même lancée. Les cellules suivantes ne vont pas vous apporter de complication, car vous allez faire appel à la même méthode que pour la cellule du mardi. Saisissez maintenant les formules suivantes :

Dans la cellule D4 (Mercredi) :

=SI(JOURSEMAINE(DATE(C1;B1;1))=4;1;SI(C4="";"";C4+1))

Dans la cellule E4 (Jeudi) :

=SI(JOURSEMAINE(DATE(C1;B1;1))=5;1;SI(D4="";"";D4+1))

Dans la cellule F4 (Vendredi) :

=SI(JOURSEMAINE(DATE(C1;B1;1))=6;1;SI(E4="";"";E4+1))

Dans la cellule G4 (Samedi) :

=SI(JOURSEMAINE(DATE(C1;B1;1))=7;1;SI(F4="";"";F4+1))

Dans la cellule H4 (Dimanche) :

=SI(JOURSEMAINE(DATE(C1;B1;1))=1;1;SI(G4="";"";G4+1))

Pour cette dernière cellule, la comparaison s'effectue sur le jour n°1 de la semaine qui est, pour AppleWorks et suivant le calendrier américain, le dimanche.

Ouf, la première ligne de votre calendrier (écran ci-dessous) est terminée ! Testez votre calendrier en saissant différent mois dans la cellule B1 et différentes années dans la cellule C1 (votre calendrier fonctionnement bien sûr parfaitement en l'an 2000 et gère les années bissextiles).

Les rangées intermédiaires

Les lignes suivantes vont maintenant être très simples (cela se compliquera à la fin, pour déterminer la date de fin du mois, vous découvrirez cela dans la dernière partie). En effet, maintenant que les formules de votre première rangée sont actives, vous êtes paré à utiliser n'importe quelle situation, puisque quel que soit le mois, il commencera forcément par un jour de la première rangée. La cellule H4, quelle que soit sa valeur, contient donc obligatoirement le jour de la veille du lundi de la deuxième rangée. Il suffit donc d'ajouter 1 à cette valeur pour trouver le numéro du jour du lundi de la deuxième rangée, en saisissant la formule suivante dans la cellule B6 :

=H4+1

Ainsi, si le dimanche de la première rangée indique " 1 ", le lundi de la deuxième rangée indiquera " 2 ", si le dimanche indique " 2 ", le lundi suivant indiquera " 3 ", et ainsi de suite.

Saisissez maintenant la formule simple suivante pour continuer la rangée, dans la cellule C6 :

=B6+1

Toujours aussi automatiquement, AppleWorks effectue automatiquement son calcul des numéros des jours. Pour vous éviter d'avoir à saisir chaque formule manuellement, vous allez utiliser l'outil de recopie automatique d'AppleWorks :

1. Cliquez dans la cellule C6 et étendez votre sélection jusqu'à la cellule H6 incluse.

2. Déroulez le menu Options et choisissez Recopier vers la droite.

AppleWorks recopie la formule de la cellule C6, en décalant automatiquement les références de la cellule indiquée dans la formule. Votre calendrier doit maintenant ressembler à l'écran ci-dessous, si vous avez choisi le même mois que l'exemple.

Les troisième et quatrième rangées du calendrier vont observer le même schéma que la deuxième rangée. Aussi, vous allez simplement effectuer deux opérations de copier/coller, AppleWorks se chargeant de décaler automatiquement les références des cellules :

1. Cliquez sur la cellule B6 et sélectionnez toute la rangée jusqu'à la cellule H6 incluse.

2. Choisissez Copier du menu Edition.

3. Cliquez sur la cellule B8.

4. Choisissez Coller du menu Edition, votre troisième rangée fonctionne maintenant !

5. Cliquez sur la cellule B10, et faites à nouveau Coller du menu Edition : votre travail a bien avancé !

Les différentes formules de vos cellules doivent maintenant être conformes à celles affichées dans l'écran ci-dessous.

Bravo, votre calendrier perpétuel commence à prendre bonne figure, vous l'avez presque terminé !

Les dernières rangées du calendrier

Vous allez maintenant vous attaquer aux deux dernières rangées du calendrier, qui ne sont pas les plus faciles. En effet, les rangées intermédiaires, comme vous venez de le constater, sont des plus simples : il suffit d'ajouter " 1 " à chaque jour, l'un après l'autre. La première rangée était plus délicate : il vous fallait déterminer où commencer le mois, c'est-à-dire où placer le 1er jour du mois.

Dans un cas comme dans l'autre, vous saviez la valeur que vous recherchiez, et notamment pour commencer le mois, puisque chaque mois, quel qu'il soit, commence le 1er. La problématique change du tout au tout avec la fin du mois, puisque selon le mois, mais aussi selon l'année, un mois pourra se terminer le 28, le 29, le 30 ou le 31. Il s'agit en effet d'éviter absolument toute erreur, et de ne pas générer un calendrier avec un mois de février 2000 avec 29 jours (il s'agit d'une année bissextile, le mois de février compte donc seulement 28 jours), ou d'autres erreurs du même genre.

Voyons tout d'abord les cas extrêmes : quelles sont les bornes possibles de n'importe quel mois ? La borne de départ est forcément le 1er du mois, et ce problème a déjà été résolu au début de cet article. Nous avions vu qu'un mois pouvait commencer tant le lundi que le dimanche, et la gestion de l'emplacement du premier jour fonctionne désormais parfaitement. Comment déterminer l'endroit où nous allons devoir commencer à gérer les dates différemment des rangées 2 à 4 ? Il faut choisir une situation extrême : celle du mois le plus court (28 jours, c'est-à-dire un mois de février d'une année non bissextile), et commençant un lundi : c'est justement le cas du mois de février 1999.

Saisissez donc " 2 " dans la cellule B1 et " 1999 " dans la cellule C1 pour vous placer dans cette situation. Et que constatez-vous ? Que le dernier jour du mois est ici le dimanche de la quatrième rangée du calendrier. C'est donc dès que la cellule B12 qu'il va être nécessaire de gérer autrement le calcul de la date, pour prévoir toutes les situations (la prochaine situation identique aura lieu en février... 2010).

Comment déterminer si un mois se termine le 28, le 29, le 30 ou le 31 ? Il n'y a pas de moyen direct de le connaître, mais avec une petite astuce, vous allez facilement savoir si une date peut exister ou pas. En effet, votre système contient une gestion de dates très précise, et AppleWorks y fait appel en permanence dès qu'il s'agit de calculer une date. Aussi, il suffit d'indiquer à AppleWorks de calculer une date, et de lui demander si celle-ci existe ou pas, pour connaître la fin du mois. Si cette date n'existe pas, alors on considère que le mois est terminé. Si elle existe, on procède alors comme pour les rangées précédentes, en ajoutant " 1 " à la date de la veille.

AppleWorks contient une fonction tout à fait adéquate pour cela, la fonction ESTERR (Est une Erreur). Elle s'écrit avec un seul argument :

=ESTERR(Expression)

" Expression " peut être une comparaison, un calcul ou une autre fonction. La fonction ESTERR, lorsqu'on l'utilise dans une formule, retourne deux réponses possibles : VRAI ou FAUX. Elle évalue la validité d'une expression (et non pas sa logique, cette dernière fonctionnalité est traitée par la fonction ESTLOGIQUE). La fonction ESTERR gère les erreurs suivantes :

#N/D! - non disponible

#DIV/0! - division par zéro

#VALEUR! - valeur incorrecte

#NUM! - expression numérique incorrecte

#REF! - référence de cellule incorrecte

#ARG! - nombre d'arguments ou type d'argument incorrect

#UTILISATEUR! - erreur définie par l'utilisateur

#DATE! - date incorrecte

#HEURE! - heure incorrecte

Vous le constatez, la gestion des dates incorrectes entre dans son champ de compétences, elle sera donc parfaite pour notre besoin. Nous vous rappelons que la fonction ESTERR répond VRAI si elle détecte une erreur et FAUX si elle n'en détecte aucune. Vous allez saisir la formule suivante dans la cellule B12 :

=SI(ESTERR(DATE(C1;B1;H10+1));"";H10+1)

Cette formule vous rappelle un peu quelque chose ? C'est normal, elle est fortement inspirée de celle utilisée dans la première rangée du calendrier. Voyons ce qu'elle signifie :

Si la date du jour H10+1, du mois B1 et de l'année C1 n'existe pas (c'est-à-dire s'il s'agit d'une erreur), alors ne rien afficher ("") ; sinon, afficher la valeur H10+1. En février 1999, il n'y a pas eu de 29ème jour. Aussi, si l'on demande comme ici avec la fonction DATE à AppleWorks d'afficher ce qui serait le 29 février 1999, cela provoque une erreur, détectée par la fonction ESTERR, et traitée avec la fonction SI. Vous allez remplir les cellules suivantes sur le même modèle :

Dans la cellule C12 :

=SI(ESTERR(DATE(C1;B1;B12+1));"";B12+1)

Dans la cellule D12 :

=SI(ESTERR(DATE(C1;B1;C12+1));"";C12+1)

Dans la cellule E12 :

=SI(ESTERR(DATE(C1;B1;D12+1));"";D12+1)

Dans la cellule F12 :

=SI(ESTERR(DATE(C1;B1;E12+1));"";E12+1)

Dans la cellule G12 :

=SI(ESTERR(DATE(C1;B1;F12+1));"";F12+1)

Et dans la cellule H12 :

=SI(ESTERR(DATE(C1;B1;G12+1));"";G12+1)

Après avoir saisi vos différentes formules, vous pouvez sans doute constater qu'il y a un léger problème. En effet, le dernier jour du mois est correctement géré : en février 1999, il n'y a pas de 29 février... mais la numérotation recommence (écran ci-dessous) deux jours après le dernier jour ! Essayez d'autres mois en changeant les valeurs de la cellule B1 : même cause même punition.

Ne vous inquiétez pas, vous n'avez fait aucune erreur, et AppleWorks suit à la lettre vos instructions. En effet, prenons par exemple la cellule C12. Si vous avez changé les dates dans les cellules B1 et C1, revenez au mois de février 1999 pour mieux comprendre pourquoi votre fonction réagit de la sorte. Dans cette situation, le 28 du mois est sur le dimanche de la quatrième rangée du calendrier (H10), et le lundi de la cinquième rangée est vide. Mais le mardi de la cinquième rangée contient " 1 ", le mercredi " 2 ", et ainsi de suite. Voici la cellule C12 :

=SI(ESTERR(DATE(C1;B1;B12+1));"";B12+1)

Elle dit à AppleWorks : si la date du jour B12+1 du mois B1 de l'année C1 n'est pas valide, ne rien afficher ; sinon, afficher la valeur de B12+1. Or actuellement, la cellule B12 ne contient rien, ce qui assimilable à la valeur 0 (zéro). B12+1 sera donc égal à la valeur 1, et c'est pourquoi C12 affiche 1. C'est la même logique qui s'ensuivra avec les cellules D12 à H12. Il est donc nécessaire de modifier ces formules afin qu'elles ne recommencent pas une numérotation erronée. Nous avons constaté que le problème ne pouvait se manifester qu'à partir de la cellule C12, correspondant au mardi. C'est donc à partir d'ici que vous allez modifier les formules.

Ces formules modifiées vont devoir déterminer si le mois est déjà terminé ou pas. S'il est terminé, alors la cellule précédente sera vide. Vous allez donc ajouter une nouvelle condition dans la formule existante, et la modifier comme suit dans la cellule C12 :

=SI(ESTERR(DATE(C1;B1;B12+1));"";SI(B12="";"";B12+1))

Comme précédemment, cette formule indique la logique suivante à AppleWorks : si la date du jour B12+1 du mois B1 de l'année C1 n'est pas valide, ne rien afficher ; sinon (et c'est ici que le comportement de la formule est modifié par rapport à la précédente), effectuer la comparaison suivante : si la cellule B12 est vide, alors ne rien afficher ; sinon, afficher la valeur de B12+1.

Vous allez modifier les autres cellules de la même rangée.

Dans la cellule D12 :

=SI(ESTERR(DATE(C1;B1;C12+1));"";SI(C12="";"";C12+1))

Dans la cellule E12 :

=SI(ESTERR(DATE(C1;B1;D12+1));"";SI(D12="";"";D12+1))

Dans la cellule F12 :

=SI(ESTERR(DATE(C1;B1;E12+1));"";SI(E12="";"";E12+1))

Dans la cellule G12 :

=SI(ESTERR(DATE(C1;B1;F12+1));"";SI(F12="";"";F12+1))

Et dans la cellule H12 :

=SI(ESTERR(DATE(C1;B1;G12+1));"";SI(G12="";"";G12+1))

Si vous vous sentez bien à l'aise avec les fonctions d'AppleWorks, sachez qu'il est également possible d'arriver à un résultat identique avec d'autres méthodes. Vous pouvez par exemple utiliser la fonction ESTVIDE pour vérifier si la case précédente est vide ou pas, ou encore effectuer comparaison sur la valeur de la cellule H10.

Bien ! Votre calendrier perpétuel est quasiment terminé ! Essayez différents mois en modifiant les cellules B1 et C1, tout fonctionne bien... mais il manque encore un petit quelque chose. Saisissez par exemple " 5 " dans B1 (mai) et " 1999 " dans C1, et votre mois se termine le 30. Or le mois de mai comporte 31 jours. Idem pour le mois d'août qui, pire encore, s'arrête le 29, alors qu'il comporte aussi 31 jours (écran ci-dessous). Il faut donc remplir également les cellules B14 et C14 de formules, afin de pouvoir gérer sans problème les mois de 31 jours dont le premier jour est un samedi ou un dimanche.

Pas de nouveauté ici, vous allez suivre la même logique que la rangée précédente, en adaptant bien sûr les références de cellules prises en compte :

Dans la cellule B14 :

=SI(ESTERR(DATE(C1;B1;H12+1));"";SI(H12="";"";H12+1))

Et dans la cellule C14 :

=SI(ESTERR(DATE(C1;B1;B14+1));"";SI(B14="";"";B14+1))

Bravo ! Votre calendrier perpétuel est vraiment terminé, il fonctionne maintenant parfaitement, quelles que soient les exceptions du calendrier ! Pensez à enregistrer votre document tableur, il est précieux.

Il vous reste à peaufiner sa présentation, et à supprimer les indications du calendrier initialement créé avec l'assistant du même nom. Comme celui-ci verrouille certaines cellules, il vous faut les déverrouiller avant de les supprimer :

1. Choisissez Tout sélectionner du menu Edition.

2. Faites Déverrouiller les cellules du menu Feuille.

3. Cliquez dans la cellule H3 et tapez sur la touche Effacement arrière de votre clavier.

4. Recommencez cette opération de suppression avec les cellules B5 à H5, B7 à H7, B9 à H9, B11 à H11, B13 et C13.

Vous pouvez modifier la couleur, le corps et le type des polices de caractères, l'alignement des cellules, les contours, bref, tout ce qui vous plaira (écran ci-dessous). Lorsque vous modifierez le contenu des cellules B1 et C1 pour le mois et l'année, seules les données affichées seront modifiées, et jamais les formules.

Conclusion

Vous disposez maintenant d'un calendrier perpétuel, adaptable à tous vos besoins de gestion du temps. Vous pouvez vous en servir pour générer des calendriers personnalisés, pour afficher des emplois du temps uniques en croisant automatiquement les informations du calendrier avec des données issues d'une base de données grâce à la fusion (voir à ce sujet l'article Comment utiliser les blocs dans les différents environnements d'AppleWorks.

Vous avez découvert ou redécouvert comment mettre en œuvre des fonctions simples mais redoutablement puissantes lorsqu'elles sont combinées entre elles : NOMMOIS, JOURSEMAINE, DATE, SI et ESTERR. Avec seulement cinq fonctions, vous êtes déjà allé très loin dans l'automatisation de vos travaux avec AppleWorks. Pensez qu'AppleWorks contient 103 fonctions, et à la richesse que vous pouvez en retirer lorsque vous les utilisez !

Une fois de plus, AppleWorks démontre sa capacité à fournir des fonctionnalités beaucoup plus avancées qu'un simple outil de traitement de texte, et il n'appartient qu'à vous de toujours repousser les limites de votre logiciel favori en le maîtrisant chaque jour un peu mieux.


Accueil Atelier


Accueil

Entre Nous

Atelier

Télécharger

Liens

Newsletter

A propos


© 2002 Ma Pomme - reproduction interdite sans l'accord écrit de www.mapomme.com

[1053]