OVH Cloud OVH Cloud

macro en attente

2 réponses
Avatar
DENIS
Bonjour à tous,

Ci-dessous la fin du code de ma macro, qui ne fonctionne pas très bien.
Je souhaiterais qu'elle se mette en attente 2 secondes et recommence à
partir de l'instruction d'ouverture du fichier :="P:\EQUIPEMENT\base BU
CDG.xls.
Le problème est que si le fichier base BU CDG.xls est déja utilisé
momentanément par un autre utilisateur, la macro veut absolument exécuter
l'instruction suite: alors que je lui demande de repartir à depart: après
2secondes de délai.
Y a forcemment une erreur de mon code. Quelqu'un la voit ??


'En tête de module
Option Explicit
Public RunWhen As Variant 'programmation horaire
Public Const cRunIntervalSeconds = 2 ' 2secondes
Public Const cRunWhat = "debut" 'nom de l'instruction à exécuter
__________________________________________________
........
'si le répertoire P:\ n'existe plus momentanement
On Error GoTo attente:
debut :
ChDir "P:\EQUIPEMENT"
Workbooks.Open Filename:="P:\EQUIPEMENT\base BU CDG.xls"

GoTo suite:

attente:
'Programmation horaire = Maintenant + 2 secondes
RunWhen = TimeValue(Now + TimeSerial(0, 0, cRunIntervalSeconds))
Application.OnTime RunWhen, cRunWhat


'continue l'instruction si pas de plantage P:\
suite:

Windows("base BU CDG.xls").Activate
Sheets("Statistiques").Select
Range("A5").Select

End Sub


Merci
Denis

2 réponses

Avatar
LSteph
Bonjour,

Mets ton test d'ouverture de fichier en début de macro
enlève les deux points après goto attente
vire le goto suite inutile
mets ta routine erreur en fin de macro,cette fois avec les deux points
L'exit sub sortira si le code a été exécuté correctement ainsi:
.....
On Error GoTo attente
'icil'ouverture
'icila suite de la macro
.....
exit sub
attente:
'ici le ontime qui rappelle ta macro si le fichier n'était pas libre
end sub

'lSteph


DENIS" a écrit dans le message de news:

Bonjour à tous,

Ci-dessous la fin du code de ma macro, qui ne fonctionne pas très bien.
Je souhaiterais qu'elle se mette en attente 2 secondes et recommence à
partir de l'instruction d'ouverture du fichier :="P:EQUIPEMENTbase BU
CDG.xls.
Le problème est que si le fichier base BU CDG.xls est déja utilisé
momentanément par un autre utilisateur, la macro veut absolument exécuter
l'instruction suite: alors que je lui demande de repartir à depart: après
2secondes de délai.
Y a forcemment une erreur de mon code. Quelqu'un la voit ??


'En tête de module
Option Explicit
Public RunWhen As Variant 'programmation horaire
Public Const cRunIntervalSeconds = 2 ' 2secondes
Public Const cRunWhat = "debut" 'nom de l'instruction à exécuter
__________________________________________________
........
'si le répertoire P: n'existe plus momentanement
On Error GoTo attente:
debut :
ChDir "P:EQUIPEMENT"
Workbooks.Open Filename:="P:EQUIPEMENTbase BU CDG.xls"

GoTo suite:

attente:
'Programmation horaire = Maintenant + 2 secondes
RunWhen = TimeValue(Now + TimeSerial(0, 0, cRunIntervalSeconds))
Application.OnTime RunWhen, cRunWhat


'continue l'instruction si pas de plantage P:
suite:

Windows("base BU CDG.xls").Activate
Sheets("Statistiques").Select
Range("A5").Select

End Sub


Merci
Denis


Avatar
LSteph
voici ce que je te répondais:
Bonjour,

Mets ton test d'ouverture de fichier en début de macro
enlève les deux points après goto attente
vire le goto suite inutile
mets ta routine erreur en fin de macro,cette fois avec les deux points
L'exit sub sortira si le code a été exécuté correctement ainsi:
.....
On Error GoTo attente
'icil'ouverture
'icila suite de la macro
.....
exit sub
attente:
'ici le ontime qui rappelle ta macro si le fichier n'était pas libre
end sub

'lSteph

"DENIS" a écrit dans le message de news:

Bonjour à tous,

Ci-dessous la fin du code de ma macro, qui ne fonctionne pas très bien.
Je souhaiterais qu'elle se mette en attente 2 secondes et recommence à
partir de l'instruction d'ouverture du fichier :="P:EQUIPEMENTbase BU
CDG.xls.
Le problème est que si le fichier base BU CDG.xls est déja utilisé
momentanément par un autre utilisateur, la macro veut absolument exécuter
l'instruction suite: alors que je lui demande de repartir à depart: après
2secondes de délai.
Y a forcemment une erreur de mon code. Quelqu'un la voit ??


'En tête de module
Option Explicit
Public RunWhen As Variant 'programmation horaire
Public Const cRunIntervalSeconds = 2 ' 2secondes
Public Const cRunWhat = "debut" 'nom de l'instruction à exécuter
__________________________________________________
........
'si le répertoire P: n'existe plus momentanement
On Error GoTo attente:
debut :
ChDir "P:EQUIPEMENT"
Workbooks.Open Filename:="P:EQUIPEMENTbase BU CDG.xls"

GoTo suite:

attente:
'Programmation horaire = Maintenant + 2 secondes
RunWhen = TimeValue(Now + TimeSerial(0, 0, cRunIntervalSeconds))
Application.OnTime RunWhen, cRunWhat


'continue l'instruction si pas de plantage P:
suite:

Windows("base BU CDG.xls").Activate
Sheets("Statistiques").Select
Range("A5").Select

End Sub


Merci
Denis