place d'un programme

C

casse tete

Guest
salut a tous
je desirerai ecrire un programme qui s'execute tout le temps ( meme quand classeur fermé) mais je sais pas ou l'ecrire (sur this workbook?)et quelle instruction utiliser.
Si quelqu'un pourrai m'aider ca serai sympa.
Merci d'avance
 
@

@+Thierry

Guest
Salut Casse-Tete, le Forum

Vraiment pas claire du tout ton histoire ?

Le PC est-il au moins allumé ? .........http://imagesdeti.free.fr/GifAnimesSmiley/smiley_471.gif[/url]

Trève de plaisanterie quel est ton but si je n'abuse pas en demandant ?

Bon Courage
@+Thierry
 
@

@+Thierry

Guest
SAlut Casse Tête, bonjour le Forum

Alors là c'est simple, et tellement plus clair quand le développeur sait ce que le User veut faire !

Par exemple dans un classeur "Personal.xls" (fais une recherche dans ce Forum à Personal.xls) ou bien dans un classeur standard qu'il te faudra ouvrir à chaque fois tu mets ce code :

Option Explicit
Dim Running As Boolean

Private Sub Workbook_Open()
If Running <> False Then
Application.OnTime TimeValue("08:00:00"), "Start"
End If
End Sub

Private Sub Start()
Dim Timing As Date
If Running <> False Then
Timing = Now
Application.OnTime Timing + TimeValue("00:01:00"), "Printing"
End If
End Sub


Private Sub Printing()
Workbooks.Open "C:\Mes Documents\Mon Repertoire\LeClasseur a imprimer.xls"

With Workbooks("LeClasseur a imprimer.xls")
.PrintOut
.Close 0
End With
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call Stopping
End Sub

Sub Stopping()
Application.OnTime EarliestTime:=TimeValue("08:00:00"), _
Procedure:="my_Procedure", Schedule:=False
Running = False
End Sub

NB1 il faut tout de même qu'Excel soit ouvert, et si tu n'optes pas pour un "Personal.xls" ("Perso.xls" en Fr) tu devras ouvrir le classeur contenant cette macro pour que le timing fonction.... Idem Excel et ce classeur devront être ouvert tout le temps pour que cela fonctionne .

NB2 la macro "Stopping" est importante si tu veux arreter le Timing. (Tu peux la mettre en Module Standard et la lancer depuis un Bouton aussi)
Attention je n'ai pas eu le temps de tester mais le principe est celui là.

Bonne Journée T.G.F.!

@+Thierry
 
C

casse tete

Guest
salut thierry et le forum
merci pour ton aide.
J'ai encore un probleme.
Lorsque je veux fermer mon classeur, il me signale l'erreur suivante : "erreur d'execution 1004, la methode 'on time' de l'objet '_application' a echoué" et il va pointer a la ligne Procedure:="my_Procedure", Schedule:=False
Que signifie cette erreur stp?
@+
 
J

Jean-Marie

Guest
Bonjour

Tout simplement qu'il faut lancer la macro "Stopping" avant de fermer ton fichier.

Thierry n'a surement pas donner assez d'explications, si je me trompe pas, le code de la procedure "Workbook_BeforeClose" est à placer dans le ThisWorkBook. Supprime cette procèdure dans ton module.


Mais il me semble qu'il y a une erreur dans la procédure que Thierry a donner, à la ligne :
Application.OnTime Timing + TimeValue("00:01:00"), "Printing"
à remplacer
pplication.OnTime Timing + TimeValue("01:00:00"), "Printing"
autrement impression toutes les minutes.

Bonne journée

@+Jean-Marie
 
@

@+Thierry

Guest
Salut Jean Marie, Casse Tête

"Sûrement pas assez d'explication..." Arf... y fait une quarantaine de lignes mon post et avec deux Nota Bene, plus un post additif pour expliquer oùplacer le tout !!

Si Casse Tête a bien tout appliqué, c'est à dire un copié collé dans "le Private Module de "ThisWorkBook"... comme expliqué à 8:36... Ce n'est pas çà le problème.

En fait c'est tout bête, et çà n'a rien à voir avec l'emplacement !!

c'est :
Sub Stopping()
Application.OnTime EarliestTime:=TimeValue("08:00:00"), _
Procedure:="my_Procedure", Schedule:=False
Running = False
End Sub

qui est faux (j'ai copié l'exemple e l'aide direct !! lol)

Il faut écrire ceci dans ton cas Casse Tête :

Sub Stopping()
Application.OnTime EarliestTime:=TimeValue("08:00:00"), _
Procedure:="Start", Schedule:=False
Running = False
End Sub


Sinon bien vu Jean Marie pour le reste, une énorme et terrible erreur (surtout pour les pauvres arbres d'Amazonie !!!) TimeValue("01:00:00") pour avoir un déclanchement toutes les heures et pas toutes les minutes !!!

Bon Aprèm
@+Thierry
 
C

casse tete

Guest
salut thierry, jean marie et le forum,
suite a ton dernier message, j'ai donc procedé a la modification de "my procedure" par "start" mais cela ne fonctionne tjr pas et j'ai tjr le message d'erreur : "erreur d'execution 1004, la methode 'on time' de l'objet '_application' a echoué".
Pourriez vous m'indiquer a quoi correspond ce message?
je comprend ^pas pourquoi cela ne marche pas.
je vous remercie d'avance.
@+
 

Discussions similaires

Statistiques des forums

Discussions
312 075
Messages
2 085 078
Membres
102 772
dernier inscrit
bluetesteur