Lancer une macro a une date !

doctor_vai -  
tompols Messages postés 1325 Statut Contributeur -
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

7 réponses

doctor_vai
 
UP !!
0
ben13.51 Messages postés 115 Statut Membre 7
 
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...
0
doctor_vai
 
pourrai tu etre plus clair concernant : "now"

tks a lot
0
ben13.51 Messages postés 115 Statut Membre 7
 
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...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tompols Messages postés 1325 Statut Contributeur 435
 
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....
0
ben13.51 Messages postés 115 Statut Membre 7
 
Qu'est-ce que tu entend par "q'une boucle permette d'attendre"...
0
tompols Messages postés 1325 Statut Contributeur 435
 
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....
0