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

Résolu
charlescharles Messages postés 1 Statut Membre -  
 smiX -
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!

7 réponses

  1. dardeviIIe
     
    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
    1
    1. Nanonimous
       
      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 :-)
      0
    2. smiX
       
      Peut-êtreUneRéponse a parfaitement raison en parlant de l'utilisation des tâches planifiées
      0
  2. Peut-êtreUneRéponse Messages postés 47 Statut Membre 11
     
    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 ;-)
    0
    1. djetther
       
      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......
      0
  3. charlescharles
     
    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!!
    0
    1. Peut-êtreUneRéponse Messages postés 47 Statut Membre 11
       
      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
      0
  4. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    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
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Peut-êtreUneRéponse Messages postés 47 Statut Membre 11
     
    <Edit>Suppression</edit>
    0
  7. charlescharles
     
    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!!
    0
    1. rouget
       
      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.
      0
  8. Peut-êtreUneRéponse Messages postés 47 Statut Membre 11
     
    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?
    -1