Tâche mensuelle sur excel

Bonjour,

Je travail actuellement sur un tableau excel. Je souhaite intégrer à une cellule une formule qui permette d'afficher automatiquement une tâche chaque premier mercredi du mois.

Exemple : pour la feuille du mercredi 4 juin (date inscrite dans une cellule), " vérification de tel matériel" s'inscrit automatiquement dans une cellule de mon choix.

Cette fonction est-elle possible?

Merci pour votre aide
Configuration: Windows XP
Internet Explorer 6.0

6 réponses

Résumé de la discussion

Le problème porte sur l'affichage automatique d'une tâche le premier mercredi de chaque mois dans Excel, à partir d'une date inscrite dans une cellule, avec le texte 'vérification de tel matériel'. Plusieurs solutions ont été proposées: une formule conditionnelle utilisant JOURSEM (return_type adapté) pour afficher le texte uniquement lorsque le jour est mercredi, et des approches alternatives via calculs du premier mercredi ou méthodes VBA. En pratique, une solution simple est d’utiliser JOURSEM avec une condition sur mercredi et de retourner le texte ciblé lorsque la condition est vraie, puis d’étendre la formule sur le mois.

Bobot (l’IA à votre service)
  1. Bonjour Romain,

    essaie cette formule en B1:
    =SI(JOURSEM(A1;2)=3;"vérification de tel matériel";"")
    étendre sur les 7 premiers jours du mois.

    à ton écoute.
    0
    1. Merci pour ta réponse (rapide en plus!) mais ca ne me convient pas tout à fait.

      Je précise un peu : je souhaiterais que la cellule affiche différentes tâches en fonction de la date : par exemple vérification de tel matériel le 1er mercredi du mois, vérification d'un autre matériel le 2ème mercredi du mois etc...

      Si quelqu'un à des pistes de solutions je suis preneur.

      Merci
      0
    2. @RomainBonjour à tous,

      Regarde si ceci te convient.
      0
    3. Contributeur
      @chtilouPas mal, je dirais même plus, très bien, mais un peu lourd pour quelque lignes de VBA, non ?
      0
    4. @lermite222Merci,
      j'avoue ne pas trop bien connaître VBA, n'avoir rien pigé aux explications ;-(, de plus comme ce sujet n'est pas le mien je ne tenais pas à intervenir en posant des questions sur comment faire (afin de ne pas embrouiller Romain).

      Cordialement.
      0
    5. Contributeur
      @chtilouAucun topic n'est à 'quelqu'un' et si tu veux intervenir et poser des questions c'est aucun problème, de plus ton exemple correspond tout à fait à ce qui est demander, excepté ma remarque précédante.
      Cordialement.
      0
  2. Contributeur
    Bonjour,
    Une idée comme une autre...
    Private Sub Workbook_Open()
        If Day(Now) < 7 Then
            Select Case Weekday(Now)
            Case 1 'Lundi
            Case 2 'Mardi
            Case 3 'mercredi
                'afficher message dans la cellule
            End Select
        End If
    
    End Sub

    A+
    0
    1. Désolé lermite222 mais là c'est au dessus de mes compétences!

      et j'ai besoin de quelques explications supplémentaires!

      Merci
      0
      1. Contributeur
        Bon... Allons y,
        Tu tape Alt+F11
        Tu entre dans l'IDE de VBA
        Sur la gauche tu a l'explorateur de projet avec tes feuilles et le classeur (ThisWorkbook)
        double clic sur ThisWorkbook, dans la fenêtre qui s'ouvre tu fais un Copier/coller de la macro ci-dessus
        Pour controler..
        Tu remplace Stop par
        MsgBox "Aujourdhui vous decez faire cela",VbOKonly,now

        Résultat >>
        Si la date du jour est plus petite que le 7 (de 1 à 6)
        si aujourd'hui c'est mercredi
        Le message s'affiche

        Si tu met en dessous de 1 ce serra pour le lundi.. Etc..
        Si pas asser clair revient.
        0
        1. Contributeur
          Correction..
          J(ai confondu 2 topic
          il n'y a pas de Stop
          La ligne
          MsgBox "Aujourdhui vous decez faire cela",VbOKonly,now
          'ou si tu veux dans une cellule tu remplace MsgBox.. par..
          Cells(Ligne,Colonne).value = "Aujourdhui vous devez faire cela"

          tu doit l'ajouter juste en dessous de
          'afficher message dans la cellule
          0
      2. Essai ca :

        1A B C D E F
        2 1 1er mardi faire serveur 1
        3 2 2e mardi faire serveur 2
        4 3 3e mardi faire serveur 3
        5 4 4e mardi faire serveur 4
        6 5 5e mardi faire serveur 5
        7
        8
        9
        10
        11 20/05/2008
        12 faire serveur 3

        avec la formule suivante en B12 : =INDEX(D2:F6;EQUIV(SI(JOURSEM(B11)=3;SI(JOUR(B11)<8;1;SI(JOUR(B11)<15;2;SI(JOUR(B11)<22;3;SI(JOUR(B11)<29;4;5))));0);D2:D6;0);3)
        0
        1. 1A B C D E F
          2 1 1er mardi faire serveur 1
          3 2 2e mardi faire serveur 2
          4 3 3e mardi faire serveur 3
          5 4 4e mardi faire serveur 4
          6 5 5e mardi faire serveur 5
          7
          8
          9
          10
          11 20/05/2008
          12 faire serveur 3

          en B12 : =INDEX(D2:F6;EQUIV(SI(JOURSEM(B11)=3;SI(JOUR(B11)<8;1;SI(JOUR(B11)<15;2;SI(JOUR(B11)<22;3;SI(JOUR(B11)<29;4;5))));0);D2:D6;0);3)
          0
        2. @jejelefoud2 : 1
          e2 : 1er mardi
          f2 : faire serveur 1
          d3 : 2
          e3 : 2e mardi
          f3 : faire serveur 2
          d4 : 3
          e4 : 3e mardi
          f4 : faire serveur 3
          d5 : 4
          e5 : 4e mardi
          f5 : faire serveur 4
          d6 : 5
          e6 : 5e mardi
          f6 : faire serveur 5

          b11 : 20/05/2008
          B12 : =INDEX(D2:F6;EQUIV(SI(JOURSEM(B11)=3;SI(JOUR(B11)<8;1;SI(JOUR(B11)<15;2;SI(JOUR(B11)­<22;3;SI(JOUR(B11)<29;4;5))));0);D2:D6;0);3)

          le resultat sera en B12 avec le commentaire faire serveur x correspondant au bon mardi
          pour mercredi remplacer 3 par 4 dans la formule joursem(b11)=4
          0
        3. @jejelefouBonjour et merci à tous pour votre contribution!

          La solution de jejelefou s'adapte parfaitement à ce que je voulais.(Pour info ce document excel est une feuille de garde utilisée dans un centre de secours sapeurs-pompiers)

          Je me rends compte qu'excel offre de nombreuses possibilités et vue vos compétences je vais essayer d'aller un peu plus loin...

          Sur la base de la solution de jejelefou, je souhaiterais étendre la formule à plusieurs jours de la semaine : je m'explique par un exemple : la cellule affiche :

          - 1er mardi du mois : tâche 1
          - 2ème mardi du mois : tâche 2
          - 1er jeudi du mois : tâche 3
          - 2ème jeudi du mois : tâche 4 etc...

          Salutations
          0
        4. @RomainBonjour à tous,

          Romain, vu que tu as réussi à mettre en application la solution de Jejelefou, ce serait sympa si tu la postais par ici.

          Cordialement.
          0
        5. @Romainen fait il te faut faire un tableau
          dans mon exemple :
          a1 tache du 1er dimanche du mois
          a2 tache du 2eme dim
          a3 tache du 3eme dim
          a4
          a5 tache du 5em
          b1 1er lundi
          b2 2emm
          ...
          ...
          g1 1er samedi
          ...
          g5 5eme samedi

          en a8 tu mets la date que tu desire si tu veux la date du jour : =aujourdhui()

          ensuite pour obtenir la tache du jour en a8 tu fais :
          =INDEX(A1:G5;ARRONDI.SUP(JOUR(A8)/7;0);JOURSEM(A8))

          si tu veux obtenir la tache du jour sans passer par A8
          =INDEX(A1:G5;ARRONDI.SUP(JOUR(AUJOURDHUI())/7;0);JOURSEM(AUJOURDHUI()))

          j'espere avoir été assez clair

          a+
          0
      3. Contributeur
        Bonjour à everybody

        Juste un petit passage dans ce fil pour faire avancer le schmilblick (ce serait sympa si Romain pouvait mettre un extrait de sa feuille sur www.cjoint.com)
        pour indiquer comment déterminer le Xème mercredi du mos

        si le 1° du mois et de l'année est indiqué en A1 (par ex 1/5/8)

        =A1-MOD(A1-5;7)+7*1-1 donne la date du 1° mercredi *
        =A1-MOD(A1-5;7)+7*2-1 donne la date du 2° mercredi *

        etc.
        * formule d'après Monique sur Excel-downloads
        ainsi, avec un tableau intermédiaire comportant ces formules dans la colonne de gauche et le boulot dans la colonne de droite

        un simple recherchev avec valeur proche =0 et une gestion d'erreur (si la date ref n'est pas dans le tableau, on n'est pas mercredi)

        comme Romain fait un tableau mensuel il faudrait employer en A1 une formule du style date(année,mois,1) avec l'année dans une cellule et le numéro du mois dans une autre pour travailler efficacement

        Normalement, s'il s'agit que de ce problème et sous réserve de voir le classeur, une solution par VBA est superflue;

        Bonne soirée à tous
        En espèrant que le demandeur réponde (ca se fait rare en ce moment)
        Michel
        0