Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment déclencher une procédure SUB chaque demi heure (par exemple)

11 réponses
Avatar
Jean Renaudeau
Bonjour

Existe t'il une fonction ou procédure SUB qui me permettrait le
déclenchement d'une procédure VBA à intervalle régulier ?

Merci pour votre aide

Jean

10 réponses

1 2
Avatar
MichDenis
C'est possible en utilisant l'événement OnTime de l'objet Application

Application.OnTime "Delai", "Procédure"
tu as un exemple dans l'aide.

Tu pourrais aussi utiliser le planificateur de Windows pour
ouvrir un fichier et exécuter à l'ouverture une macro.

Et finalement, tu peux créer un vbscript que tu mets dans
un document NotePad et que tu enregistres avec une extension
VBS . Tu utilises le planificateur de windows pour exécuter ce script.
Le script pourrait ressembler à ceci:

Dim objXL
Set objXL = WScript.CreateObject("Excel.Application")
objXL.Visible = True 'False selon ton choix
'Chemin et fichier à ouvrir
objXL.Workbooks.Open ("e:essai.xls")
'Macro dans un module standard
xl.Run "NOMDELAMACRO"
xl.Save 'sauvegarde du fichier
xl.Close 'Fermeture du fichier



"Jean Renaudeau" a écrit dans le message de groupe de
discussion : #YL#
Bonjour

Existe t'il une fonction ou procédure SUB qui me permettrait le
déclenchement d'une procédure VBA à intervalle régulier ?

Merci pour votre aide

Jean
Avatar
gmlsteph
Bonjour,


Regarde l'aide sur OnTime c'est très clair.
Exemple toutes les 10 secondes:

sub macropenible()
application.ontime now+timevalue("00:00:10"), "macropenible"
msgbox " Au bout d'un moment..."
end sub

Cordialement.

--
lSteph

On 16 mar, 16:01, "Jean Renaudeau" wrote:
Bonjour

Existe t'il une fonction ou procédure SUB qui me permettrait le
déclenchement d'une procédure VBA à intervalle régulier ?

Merci pour votre aide

Jean


Avatar
Jean Renaudeau
Merci MichDenis

Je vais utiliser en priorité la première solution avec OnTime "Délai"
La seconde serait plus longue à mettre en place .

Merci encore

Jean
Avatar
Jean Renaudeau
Merci à Isteph également

C'est justement cette procédure en exemple "Sub macropénible" que j'ai
utilisé.
Mais elle se déclenche qu'une seule fois après avoir pressé le bouton qui
lui est associé.
Je pense qu'il me faut une autre procédure (ou fonction) pour la déclencher
automatiquement chaque demi-heure.
(Chaque demi-heure étant un exemple)
Et je n'ai pas d'exemple dans l'aide d'Excel (Excel 97)
Il est vrai que j'ai la possibilité aussi de vérifier dans l'aide d'Excel
2007...
Ce que je vais faire de suite...

Merci à tous pour votre aide

Jean
Avatar
gmlsteph
Ah non celle que j'ai donné ce redéclanche elle même, tu peux tester!


On 16 mar, 17:19, "Jean Renaudeau" wrote:
Merci à Isteph également

C'est justement cette procédure en exemple "Sub macropénible" que j'a i
utilisé.
Mais elle se déclenche qu'une seule fois après avoir pressé le bout on qui
lui est associé.
Je pense qu'il me faut une autre procédure (ou fonction) pour la décl encher
automatiquement chaque demi-heure.
(Chaque demi-heure étant un exemple)
Et je n'ai pas d'exemple dans l'aide d'Excel (Excel 97)
Il est vrai que j'ai la possibilité aussi de vérifier dans l'aide d'E xcel
2007...
Ce que je vais faire de suite...

Merci à tous pour votre aide

Jean


Avatar
Misange
Bonjour
un peu de lecture ?
instructif...
http://www.excelabo.net/excel/tempoprogrammer.php#OnTime
Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Jean Renaudeau a écrit :
Merci à Isteph également

C'est justement cette procédure en exemple "Sub macropénible" que j'ai
utilisé.
Mais elle se déclenche qu'une seule fois après avoir pressé le bouton qui
lui est associé.
Je pense qu'il me faut une autre procédure (ou fonction) pour la déclencher
automatiquement chaque demi-heure.
(Chaque demi-heure étant un exemple)
Et je n'ai pas d'exemple dans l'aide d'Excel (Excel 97)
Il est vrai que j'ai la possibilité aussi de vérifier dans l'aide d'Excel
2007...
Ce que je vais faire de suite...

Merci à tous pour votre aide

Jean





Avatar
Philippe.R
Bonsoir,
Attention, il faut que la procédure soit placée dans un module ordinaire !
Pour l'aide, c'est dans celle de VBE qu'il faut chercher.
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"Jean Renaudeau" a écrit dans le message de
news:
Merci à Isteph également

C'est justement cette procédure en exemple "Sub macropénible" que j'ai
utilisé.
Mais elle se déclenche qu'une seule fois après avoir pressé le bouton qui
lui est associé.
Je pense qu'il me faut une autre procédure (ou fonction) pour la
déclencher
automatiquement chaque demi-heure.
(Chaque demi-heure étant un exemple)
Et je n'ai pas d'exemple dans l'aide d'Excel (Excel 97)
Il est vrai que j'ai la possibilité aussi de vérifier dans l'aide d'Excel
2007...
Ce que je vais faire de suite...

Merci à tous pour votre aide

Jean





Avatar
LSteph
bonsoir Philippe,

..bien vu,
chez jean ce bouton doit être actuellement relié à un module de feuille,
sinon cela se relancerait..et le nom de la macro est de circonstance.
On s'en rend vite compte.

;-)

--
lSteph



Philippe.R a écrit :
Bonsoir,
Attention, il faut que la procédure soit placée dans un module ordinaire !
Pour l'aide, c'est dans celle de VBE qu'il faut chercher.


Avatar
Jean Renaudeau
Bonsoir,

Après avoir suivi vos conseils (de lecture entre autre),
j'ai expérimenté le simple petit programme suivant:

For i = 0 To 5
Application.OnTime Now + i / (1440 * 4), "Ma procédure"
Next
'1440 = 1 mn

Ce qui me convient parfaitement.
Merci et bonne soirée

Jean
Avatar
Didou
A la demande de MichDenis, je copie la réponse qu'il a faite (au mail perso
que je me suis permis de lui envoyer, SHAME ON ME !!!!)

GRAND MERCI à lui donc de nous envoyer la petite modification à faire pour
que ce merveilleux outil (la tâche et le VBScript) que je ne connaissais pas
fonctionne (que dire pour finir sinon que je suis toujours émerveillé et
reconnaissant à tous ces gens compétents qui prennent de leur temps pour
répondre aux gens moins compétents ! merci encore) :
La variable Déclarée est ObjXl. La procédure change cette
dernière en cours d'exécution de la procédure pour Xl c'est ce pourquoi que
cela bloque. Une distraction ...

Ta macro doit se trouver dans un module Standard de ton fichier excel.

Dim objXL
Set objXL = WScript.CreateObject("Excel.Application")
objXL.Visible = True 'False selon ton choix
'Chemin et fichier ouvrir
objXL.Workbooks.Open ("c:tonfichier.xls")
'Macro dans un module standard
objXL.Run "tamacro"
'Sauvegarde des modifications du fichier
objXL.Save 'sauvegarde du fichier
'Fermeture du fichier
objXL.Close 'Fermeture du fichier

"MichDenis" wrote:

C'est possible en utilisant l'vnement OnTime de l'objet Application

Application.OnTime "Delai", "Procdure"
tu as un exemple dans l'aide.

Tu pourrais aussi utiliser le planificateur de Windows pour
ouvrir un fichier et excuter l'ouverture une macro.

Et finalement, tu peux crer un vbscript que tu mets dans
un document NotePad et que tu enregistres avec une extension
VBS . Tu utilises le planificateur de windows pour excuter ce script.
Le script pourrait ressembler ceci:

Dim objXL
Set objXL = WScript.CreateObject("Excel.Application")
objXL.Visible = True 'False selon ton choix
'Chemin et fichier ouvrir
objXL.Workbooks.Open ("e:essai.xls")
'Macro dans un module standard
xl.Run "NOMDELAMACRO"
xl.Save 'sauvegarde du fichier
xl.Close 'Fermeture du fichier



"Jean Renaudeau" a crit dans le message de groupe de
discussion : #YL#
Bonjour

Existe t'il une fonction ou procdure SUB qui me permettrait le
dclenchement d'une procdure VBA intervalle rgulier ?

Merci pour votre aide

Jean




1 2