Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Générer le nom des jours


Sujet :

Excel

  1. #1
    Membre averti
    Générer le nom des jours
    Bonjour,

    j'ai un classeur servant de calendrier, chaque feuille Excel contient un mois.

    Une cellule C1 de format date contient le nom du 1er jour du mois (Ven.) en faisant glisser cette cellule (feuille par feuille) jusqu'au dernier jour du mois j'obtient mon calendrier (Sam. Dim. et ainsi de suite)

    Nous approchons de 2021 et je cherche à automatiser ces mises à jour en tapant uniquement le 1er jour de l'année en C (Ven. pour 2021) et à répercuter sur toute l'année

    En d'autre terme je voudrai en C2 avoir l'équivalent de C1+1 puis en C3 l'équivalent de C2+1 . Je sais faire sur des chiffres mais sur peut-on faire sur le nom des jours ?

    merci
    Il ne savait pas que c'était impossible, donc il l' a fait...

  2. #2
    Rédacteur

    Bonjour,
    Pas certain d'avoir bien compris la question mais pour obtenir le jour d'une date, il existe toutes les combinaisons possible dans le format personnalisé (Exemple pour le 1/1/2021 avec comme format jjj j on obtiendra ven 1)
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Quelques contributions : USERFORM - Créer, Consulter, Modifier et Supprimer des enregistrements à l'aide d'un formulaire - Géolocalisation d'une adresse avec Excel et Google sans VBA

  3. #3
    Membre averti
    pour préciser, voilà la feuille du mois de janvier 2020 (idem pour chaque mois)


    [TH="colspan:31"]JANVIER 2020[/TH]
    mer. jeu. ven. sam. dim. lun. mar. mer. jeu. ven. sam. dim. lun. mar. mer. jeu. ven. sam. dim. lun. mar. mer. jeu. ven. sam. dim. lun. mar. mer. jeu. ven.
    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

    Pour préparer 2021 je dois remplacer "mer." du 1er janvier 2020 par "ven". (1er janvier 2021) puis faire glisser la cellule jusqu'au 31 janvier puis idem pour février et ainsi de suite 12 fois

    Je voudrai avoir seulement à changer "mer." en "ven." pour le 1er janvier 2021 et avoir une formule qui fasse l'équivalent de "ven." + 1 pour mettre "sam." pour le 2 janvier et ainsi de suite pour tous les jours de l'année

    Suis-je plus clair ?

    Est-ce possible ?
    Il ne savait pas que c'était impossible, donc il l' a fait...

  4. #4
    Responsable
    Office & Excel

    Salut

    Perso, dans une feuille de paramètres, je mettrais la date du 1er jour de mon calendrier (ici donc, le 01/01/2021) et je nommerais cette date, par exemple "PremièreDate".

    Je ferais alors référence à cette date dans mes différentes feuilles. Dès lors, on gagne alors un outil "perpétuel". En jouant avec les formats personnalisés, on peut "faire dire des choses" à une simple date
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Une fois pour toutes, je donne mon avis. Je ne vais pas le répéter à chaque message...
    Si je propose une solution générique sur votre solution spécifique, c'est parce que, fainéant de nature, je privilégie le réutilisable...
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  5. #5
    Membre averti
    Tout à fait cela

    J'ai mis en place, merci c'est parfait

    Pour finir (en beauté) je voudrai mettre un fond de couleur dans les cellules correspondant aux dimanches

    Pour cela j'ai voulu mettre une MFC avec un test sur "dim" pour dimanche. Le problème est que "dim" est bien affiché (j'ai testé avec une msgbox) seulement la cellule contient en réalité la date sous la forme 05/01/2021

    Et là je coince.
    Il ne savait pas que c'était impossible, donc il l' a fait...

  6. #6
    Responsable
    Office & Excel

    Pour la mfc: la modification du format n'altère pas la valeur de la cellule, mais uniquement son affichage. Dès lors, même affichée "dim xx", il ne s'agit pas de texte mais d'une date. Tu peux donc utiliser une MFC formulée qui va tester qu'on est un dimanche, grâce à la fonction JOURSEM(LaDate;2) (2 pour dire que la semaine commence le lundi). Attention à bien rédiger la formule par rapport à la cellule active au moment de la mise en place de la MFC






    Pour l'année bissextile, tu peux tester l'année bissextile avec la fonction MOD* qui calcule le reste de la division entière pour la dernière ligne de février




    * Comme je prévois déjà les réactions de certains, je précise être pragmatique en testant l'année bissextile de cette manière. En théorie, ce n'est pas un calcul suffisant car les années séculaires non divisibles par 400 ne sont pas bissextiles, alors que ma formule "dira" qu'elles le sont. Dans la mesure où le problème se posera dans 80 ans, je pense qu'il est inutile de polémiquer sur le sujet. Une formule "puriste" pourrait être celle-ci: =SI(OU(MOD(ANNEE(A1);400)=0;ET(MOD(ANNEE(A1);100)<>0;MOD(ANNEE(A1);4)=0));"Bissextile";"Non bissextile"). Dans ce billet de mon blog, je donne aussi l'astuce par rapport au fait qu'il y a 29 jours en février ou pas: JOUR(FIN.MOIS(DATE(Année(A1);2;1);0))=29. Il est d'ailleurs "amusant de constater qu'Excel reconnaît un 29/02/1900 comme une date valide (bug d'Excel) mais le test sur le dernier jour du mois de février 1900 renvoie 28... ^^
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Une fois pour toutes, je donne mon avis. Je ne vais pas le répéter à chaque message...
    Si je propose une solution générique sur votre solution spécifique, c'est parce que, fainéant de nature, je privilégie le réutilisable...
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  7. #7
    Membre averti
    Tout est en place, merci

    RDV dans 80 ans...
    Il ne savait pas que c'était impossible, donc il l' a fait...

###raw>template_hook.ano_emploi###