Lancer une macro a une date !

Bonsoir !

Dans le cadre d'un petit projet, j'aimerai qu'une macro s'execute automatiquement sous excel tout les début de lundi de chaque semaine!
comment faire ?

tks d'avance
Configuration: Windows XP
Firefox 3.5.2

7 réponses

  1. Contributeur
    bah pour lancer un traitemement automatiquement à un moment donné, il faut bien pouvoir tester périodiquement ce moment pour savoir qd éxécuter la procédure. Cela ne peut se faire que par un traitrement qui tourne en continu avec un boucle genre "while not now = moment, wait x sceondes....." => un traitement tourne en continu pour verifier le "moment" et appelle la procédure qd il faut, d'où ma proposition d'utiliser le service "scheduler" de windows....
    1. Qu'est-ce que tu entend par "q'une boucle permette d'attendre"...
      1. Contributeur
        Bonjour,
        la solution par macro avec des fonctions comme NOW nécessite que le classeur soit ouvert et q'une boucle permette d'attendre, ça parait un peu délicat...
        Personnellement, je pencherais plutôt pour une tache planifiée windows qui ouvre le classeur en plaçant la macro dans l'événement Workbook_Open()...attention à 2 points : tester le jour ds la macro si ce classeur peut etre ouvert à d'autres moments, le PC doit etre allumé pour que la tache planifiée se lance....
        1. Now est une fonction VBA qui contient la date et l'heure du moment correspondant à la date et à l'heure de ton système (ordi)

          pour en savoir plus, tu sélectionne le mot now sur ta page de code et tu tape F1... la page d'aide VBA s'ouvrira direct sur l'aide pour la fonction now...
          1. essaye quelque chose comme ça

            If weekday(Now,2)=2 then
            Ta macro...
            end if

            et tu insere ce code dans la page de code workbook de ton classeur excel et tu change la liste déroulante en haut à gauche de "générale" en "workbook"

            ça lancera la macro à l'ouverture du classeur

            seule condition: tu doit ouvrir le classeur tout les lundi matin...