Excel VBA Application.OnTime. Je pense que c'est une mauvaise idée d'utiliser cette... les pensées de toute façon?

j'ai un certain nombre d'utilisateurs que je supporte qui demandent que les choses se passent automatiquement ( bien plus automatiquement mais c'est un autre point!).

L'un veut que les événements se produisent toutes les 120 secondes ( voir mon autre question ) et aussi un autre veut que quelque chose se passe dire à 17h chaque jour ouvrable. Ce doit être sur la feuille Excel donc VBA comme compléments etc sera non pas, comme il doit être autonome.

j'ai une grande aversion d'utiliser Application.OnTime je pense que c'est dangereux et peu fiables, ce que tout le monde pense?


EDIT: Cross post est à VBA Macro sur le style de minuterie pour exécuter le code chaque nombre de secondes défini, i.e. 120 secondes

2
demandé sur Community 2010-02-26 16:10:25
la source

1 ответов

de l'Application.OnTime est absolument fiable à 100% et n'est certainement pas dangereux. Cependant, il est seulement exposé via VBA et vous considérez VBA comme un "non non" pour une raison quelconque ici, de sorte que cette option semble être indisponible pour vous.

Je n'utiliserais généralement pas OnTime pour la planification à long terme, comme programmer Excel pour exécuter une commande chaque jour à 5pm. Le problème est que si l'utilisateur ferme Excel, puis le OnTime la planification est perdu. Ce dont vous avez besoin, dans ce cas, est d'utiliser le Task Scheduler , ou de créer votre propre application ou service windows pour ouvrir Excel et exécuter vos commandes.

pour programmer un événement de se produire toutes les 120 secondes, cependant, en utilisant L'Application.OnTime serait parfait pour cela -- vous auriez simplement besoin de re-programmer OnTime pour se produire à nouveau en 120 secondes chaque fois que OnTime rappelle, parce que OnTime ne démarre qu'une fois par la programmation, et non pas sur une base de répétition. Je voudrais absolument utiliser VBA pour cette tâche. Si vous ne voulez pas que VBA commence l'action, c'est très bien: il suffit que VBA soit contenu dans un classeur qui est ensuite ouvert par votre programme ou via le planificateur de tâches. À partir de ce moment, le code VBA peut tirer toutes les 120 secondes.

ça a un sens?

12
répondu Mike Rosenblum 2010-03-22 02:58:16
la source

Autres questions sur