Rechercher : dans
Par :

[VB excel] déclenchement macro heure donnée

Dernière réponse le 26 avr 2009 à 03:48:14 charlescharles, le 10 oct 2006 à 18:44:03 
 Signaler ce message aux modérateurs

Bonjour à tous,

j'aimerais savoir s'il existe un moyen de lancer une macro VB excel à une heure précise, quotidiennement, automatiquement sans avoir à appuyer sur quelque bouton que ce soit.
par exemple, j'aimerais qu'une macro se déclenche tous les jours à 16h...
est-ce possible??

merci pour vos lumières!

1

Peut-êtreUneRéponse, le 10 oct 2006 à 23:25:34

Bonjour,

pourquoi ne pas utiliser une tâche planifié (avec le planifiacteur de tâche) qui ouvrirait ton fichier excel contenant un macro sur évènement workbok_open?

Répondre à Peut-êtreUneRéponse

2

Peut-êtreUneRéponse, le 10 oct 2006 à 23:35:02

En y réflichissant un peu plus, tu peux lancer ta macro avec OnTime:

Application.OnTime(EarliestTime, Procedure, [LatestTime], [Schedule])

Mais ton fichier excel doit être ouvert... on en revient à mon intervention initiale: planification d'une tâche d'ouverture du fichier ;-)

Répondre à Peut-êtreUneRéponse

10

djetther, le 30 mar 2008 à 20:02:31

Bonjour,


j'ai un probleme , et j'aurais besoin de ton aide...

Voici mon probleme:

J'ai dans une cellule A1 le temps qui s'afiche sous forme de chronomètre( c'est à dire l'équivalent de la fonction maintenant() sauf qu'elle est affichée sous forme de chronomètre)

J'ai dans une deuxieme cellule B1, figer une heure.

Et dans une 3ème C1 , j'obtiens le temps qui s'ecoule en faisant la différence entre A1 et B1.
Mon probleme actuel le temps écoulé se calcul 24h/24 et 7j/7, mais moi je voudrais que le temps qui s'écoule soit uniquement calculé sur les heures d'ouverture (8h-12h et 13h-17h).

Ansi, je voudrais que ma cellule qui calcul le temps écoulé soit active si et seulement si l'heure sous forme de chronometre dans ma cellule est comprise entre : 8h-12h et 13h-17h

Merci de ton aide......

Répondre à djetther

3

charlescharles, le 11 oct 2006 à 12:26:44

Le fichier est ouvert en permanence. je vais donc regarder du côté d'Application.OnTime(EarliestTime, Procedure, [LatestTime], [Schedule]), ça me semble pouvoir marcher...

je te ferai un feed back dés que j'aurai pu avancer ça...

en tous les cas merci pour ton aide!!

Répondre à charlescharles

6

Peut-êtreUneRéponse, le 11 oct 2006 à 14:10:03
  • +1

Si cette solution te paraît intéressante tu trouveras une explication du fonctionnement de OnTime en suivant ce lien: www.excelabo.net/xl/tempo.php#OnTime

Répondre à Peut-êtreUneRéponse

4

lami20j, le 11 oct 2006 à 12:52:59

Salut,

je n'ai pas essayer mais tu peux voir aussi côté gestionnaire de tâches pour voir si ton classeur tu peux l'ouvrir à une certaine heure. Ensuite le rélais est passe à ta macro.

lami20j

Répondre à lami20j

5

Peut-êtreUneRéponse, le 11 oct 2006 à 14:08:13

<Edit>Suppression</edit>

Répondre à Peut-êtreUneRéponse

7

charlescharles, le 24 oct 2006 à 17:45:39

La fonction application.OnTime s'est révélée payante...

il suffit d'insérer ce code dans la macro Auto_Open de ThisWorkBook en indiquant l'heure et la macro (contenue dans un module) à démarrer à heure fixe.
lorsque le classeur est ouvert par l'utilisateur, excel 'lit' qu'il doit exécuter la macro indiquée et le tour est joué.

merci pour votre aide!!

Répondre à charlescharles

11

 rouget, le 26 avr 2009 à 03:48:14

Bonjour Charles,

Je ne n'arrive toujours à faire l'envoi auto de ma macro à une heure précise.
Aurais tu la gentillesse de m'envoyer le code de ta macro stp.

Merci d'avance,

Rouget.

Répondre à rouget

8

dardeviIIe, le 22 fév 2007 à 15:59:25

Bonjour, a tous je ne comprend pas pour quoi mon code ci-dessous ne fonctionne pas ou ci que l'envois du mail pas le déclenchement à heure fixe.
merci pour votre aide....

Sub SendPlng()
' lance la macro SendParMail à 09:00:00 heures
Application.OnTime TimeValue("15:51:00"), ("SendParMail"), True
End Sub

Sub SendParMail()
'cette macro envois par mail la feuille excel active
ThisWorkbook.Sheets("Fev").Copy
ActiveWorkbook.SendMail ("mohamed.hajjaji@free.fr")
ActiveSheet.Copy
End Sub

Répondre à dardeviIIe

9

Nanonimous, le 9 mar 2007 à 14:48:22

Dans SendParMail(), je crois que tu dois ré-armer ton trigger/timer. Bref, rajouter une ligne du genre:

Application.OnTime TimeValue("15:51:00"), "SendParMail"

Avec OnTime, une fois ta fonction appellée à 15h51, elle ne sera pas réappelée le lendemain à 15h51. Ce serait trop beau ;-)


J'ai aussi une sheet Excel constament ouverte sur une station Reuters (taux de change, etc..). Dans l'auto_open(), je lance via OnTime un truc à 21h00. Dans la fonction appellée à 21h00, j'exécute mon code, j'attend 10 secondes (Application.Wait Now + TimeValue("00:00:10")) et puis je redemande une exécutuion à 21h00... (et j'espere qu'Excel comprendra que c'est 21h00 LE LENDEMAIN vu que je lui demande ça à 21:00 et 10 secondes :-)

Répondre à Nanonimous