Bonjour à tous,
L'instruction ci-dessous donne une attente de 3 secondes puis réessaye
d'acceder au fichier "base BU CDG.xls".
Tout fonctionne très bien. Mais cette macro pour le moment est faite
pour le cas ou ce fichier ne soit pas disponible pour un très court
instant. Par contre, dans l'hypothèse ou ce fichier ne serait pas du
tout disponible à cause d'un plantage serveur, comment lui spécifier en
fait d'essayer d'acceder au fichier "base BU CDG.xls" au bout de 3
secondes mais si cela s'avère infructieux au bout de 3 essais, de passer
à la suite de l'instruction à, "suite:"
'En tête de module
Option Explicit
Public RunWhen As Variant 'programmation horaire
Public Const cRunIntervalSeconds = 3 ' 2secondes
Public Const cRunWhat = "macro1" 'nom de l'instruction à exécuter
Sub macro1()
'si le répertoire P: n'existe plus momentanement
On Error GoTo attente
ChDir "P:EQUIPEMENT"
Workbooks.Open Filename:="P:EQUIPEMENTbase BU CDG.xls"
'ici la suite de la macro
'continue l'instruction si pas de plantage P:
Windows("base BU CDG.xls").Activate
Sheets("Statistiques").Select
Range("A5").Select
'j'aimerais que la macro passe à cette instructions dès lors qu'au bout
de
'3 essais d'ouverture de ("base BU CDG.xls") ne passe pas et signifirait
un plantage serveur et
'non pas que le fichier soit en cours d'utilisation. (il ne reste pas
ouvert plus de 2secondes par traitement)
Suite:
Windows("enlevement2008.xls").Activate
' Va à la page de garde
Sheets("pickup").Select
Range("A1").Select
Collection.Hide
Unload Collection
ActiveWorkbook.Save
Exit Sub
attente:
'ici le ontime qui rappelle ta macro si le fichier n'était pas libre
'Programmation horaire = Maintenant + 3 secondes
MsgBox "Le fichier base de données est en cours d'utilisation par un
autre utilisateur, veuillez patienter"
RunWhen = TimeValue(Now + TimeSerial(0, 0, cRunIntervalSeconds))
Application.OnTime RunWhen, cRunWhat
End Sub
Bonjour à tous,
L'instruction ci-dessous donne une attente de 3 secondes puis réessaye
d'acceder au fichier "base BU CDG.xls".
Tout fonctionne très bien. Mais cette macro pour le moment est faite
pour le cas ou ce fichier ne soit pas disponible pour un très court
instant. Par contre, dans l'hypothèse ou ce fichier ne serait pas du
tout disponible à cause d'un plantage serveur, comment lui spécifier en
fait d'essayer d'acceder au fichier "base BU CDG.xls" au bout de 3
secondes mais si cela s'avère infructieux au bout de 3 essais, de passer
à la suite de l'instruction à, "suite:"
'En tête de module
Option Explicit
Public RunWhen As Variant 'programmation horaire
Public Const cRunIntervalSeconds = 3 ' 2secondes
Public Const cRunWhat = "macro1" 'nom de l'instruction à exécuter
Sub macro1()
'si le répertoire P: n'existe plus momentanement
On Error GoTo attente
ChDir "P:EQUIPEMENT"
Workbooks.Open Filename:="P:EQUIPEMENTbase BU CDG.xls"
'ici la suite de la macro
'continue l'instruction si pas de plantage P:
Windows("base BU CDG.xls").Activate
Sheets("Statistiques").Select
Range("A5").Select
'j'aimerais que la macro passe à cette instructions dès lors qu'au bout
de
'3 essais d'ouverture de ("base BU CDG.xls") ne passe pas et signifirait
un plantage serveur et
'non pas que le fichier soit en cours d'utilisation. (il ne reste pas
ouvert plus de 2secondes par traitement)
Suite:
Windows("enlevement2008.xls").Activate
' Va à la page de garde
Sheets("pickup").Select
Range("A1").Select
Collection.Hide
Unload Collection
ActiveWorkbook.Save
Exit Sub
attente:
'ici le ontime qui rappelle ta macro si le fichier n'était pas libre
'Programmation horaire = Maintenant + 3 secondes
MsgBox "Le fichier base de données est en cours d'utilisation par un
autre utilisateur, veuillez patienter"
RunWhen = TimeValue(Now + TimeSerial(0, 0, cRunIntervalSeconds))
Application.OnTime RunWhen, cRunWhat
End Sub
Bonjour à tous,
L'instruction ci-dessous donne une attente de 3 secondes puis réessaye
d'acceder au fichier "base BU CDG.xls".
Tout fonctionne très bien. Mais cette macro pour le moment est faite
pour le cas ou ce fichier ne soit pas disponible pour un très court
instant. Par contre, dans l'hypothèse ou ce fichier ne serait pas du
tout disponible à cause d'un plantage serveur, comment lui spécifier en
fait d'essayer d'acceder au fichier "base BU CDG.xls" au bout de 3
secondes mais si cela s'avère infructieux au bout de 3 essais, de passer
à la suite de l'instruction à, "suite:"
'En tête de module
Option Explicit
Public RunWhen As Variant 'programmation horaire
Public Const cRunIntervalSeconds = 3 ' 2secondes
Public Const cRunWhat = "macro1" 'nom de l'instruction à exécuter
Sub macro1()
'si le répertoire P: n'existe plus momentanement
On Error GoTo attente
ChDir "P:EQUIPEMENT"
Workbooks.Open Filename:="P:EQUIPEMENTbase BU CDG.xls"
'ici la suite de la macro
'continue l'instruction si pas de plantage P:
Windows("base BU CDG.xls").Activate
Sheets("Statistiques").Select
Range("A5").Select
'j'aimerais que la macro passe à cette instructions dès lors qu'au bout
de
'3 essais d'ouverture de ("base BU CDG.xls") ne passe pas et signifirait
un plantage serveur et
'non pas que le fichier soit en cours d'utilisation. (il ne reste pas
ouvert plus de 2secondes par traitement)
Suite:
Windows("enlevement2008.xls").Activate
' Va à la page de garde
Sheets("pickup").Select
Range("A1").Select
Collection.Hide
Unload Collection
ActiveWorkbook.Save
Exit Sub
attente:
'ici le ontime qui rappelle ta macro si le fichier n'était pas libre
'Programmation horaire = Maintenant + 3 secondes
MsgBox "Le fichier base de données est en cours d'utilisation par un
autre utilisateur, veuillez patienter"
RunWhen = TimeValue(Now + TimeSerial(0, 0, cRunIntervalSeconds))
Application.OnTime RunWhen, cRunWhat
End Sub
Bonjour à tous,
L'instruction ci-dessous donne une attente de 3 secondes puis réessaye
d'acceder au fichier "base BU CDG.xls".
Tout fonctionne très bien. Mais cette macro pour le moment est faite
pour le cas ou ce fichier ne soit pas disponible pour un très court
instant. Par contre, dans l'hypothèse ou ce fichier ne serait pas du
tout disponible à cause d'un plantage serveur, comment lui spécifier en
fait d'essayer d'acceder au fichier "base BU CDG.xls" au bout de 3
secondes mais si cela s'avère infructieux au bout de 3 essais, de passer
à la suite de l'instruction à, "suite:"
'En tête de module
Option Explicit
Public RunWhen As Variant 'programmation horaire
Public Const cRunIntervalSeconds = 3 ' 2secondes
Public Const cRunWhat = "macro1" 'nom de l'instruction à exécuter
Sub macro1()
'si le répertoire P: n'existe plus momentanement
On Error GoTo attente
ChDir "P:EQUIPEMENT"
Workbooks.Open Filename:="P:EQUIPEMENTbase BU CDG.xls"
'ici la suite de la macro
'continue l'instruction si pas de plantage P:
Windows("base BU CDG.xls").Activate
Sheets("Statistiques").Select
Range("A5").Select
'j'aimerais que la macro passe à cette instructions dès lors qu'au bout
de
'3 essais d'ouverture de ("base BU CDG.xls") ne passe pas et signifirait
un plantage serveur et
'non pas que le fichier soit en cours d'utilisation. (il ne reste pas
ouvert plus de 2secondes par traitement)
Suite:
Windows("enlevement2008.xls").Activate
' Va à la page de garde
Sheets("pickup").Select
Range("A1").Select
Collection.Hide
Unload Collection
ActiveWorkbook.Save
Exit Sub
attente:
'ici le ontime qui rappelle ta macro si le fichier n'était pas libre
'Programmation horaire = Maintenant + 3 secondes
MsgBox "Le fichier base de données est en cours d'utilisation par un
autre utilisateur, veuillez patienter"
RunWhen = TimeValue(Now + TimeSerial(0, 0, cRunIntervalSeconds))
Application.OnTime RunWhen, cRunWhat
End Sub
Bonjour à tous,
L'instruction ci-dessous donne une attente de 3 secondes puis réessaye
d'acceder au fichier "base BU CDG.xls".
Tout fonctionne très bien. Mais cette macro pour le moment est faite
pour le cas ou ce fichier ne soit pas disponible pour un très court
instant. Par contre, dans l'hypothèse ou ce fichier ne serait pas du
tout disponible à cause d'un plantage serveur, comment lui spécifier en
fait d'essayer d'acceder au fichier "base BU CDG.xls" au bout de 3
secondes mais si cela s'avère infructieux au bout de 3 essais, de passer
à la suite de l'instruction à, "suite:"
'En tête de module
Option Explicit
Public RunWhen As Variant 'programmation horaire
Public Const cRunIntervalSeconds = 3 ' 2secondes
Public Const cRunWhat = "macro1" 'nom de l'instruction à exécuter
Sub macro1()
'si le répertoire P: n'existe plus momentanement
On Error GoTo attente
ChDir "P:EQUIPEMENT"
Workbooks.Open Filename:="P:EQUIPEMENTbase BU CDG.xls"
'ici la suite de la macro
'continue l'instruction si pas de plantage P:
Windows("base BU CDG.xls").Activate
Sheets("Statistiques").Select
Range("A5").Select
'j'aimerais que la macro passe à cette instructions dès lors qu'au bout
de
'3 essais d'ouverture de ("base BU CDG.xls") ne passe pas et signifirait
un plantage serveur et
'non pas que le fichier soit en cours d'utilisation. (il ne reste pas
ouvert plus de 2secondes par traitement)
Suite:
Windows("enlevement2008.xls").Activate
' Va à la page de garde
Sheets("pickup").Select
Range("A1").Select
Collection.Hide
Unload Collection
ActiveWorkbook.Save
Exit Sub
attente:
'ici le ontime qui rappelle ta macro si le fichier n'était pas libre
'Programmation horaire = Maintenant + 3 secondes
MsgBox "Le fichier base de données est en cours d'utilisation par un
autre utilisateur, veuillez patienter"
RunWhen = TimeValue(Now + TimeSerial(0, 0, cRunIntervalSeconds))
Application.OnTime RunWhen, cRunWhat
End Sub
Bonjour à tous,
L'instruction ci-dessous donne une attente de 3 secondes puis réessaye
d'acceder au fichier "base BU CDG.xls".
Tout fonctionne très bien. Mais cette macro pour le moment est faite
pour le cas ou ce fichier ne soit pas disponible pour un très court
instant. Par contre, dans l'hypothèse ou ce fichier ne serait pas du
tout disponible à cause d'un plantage serveur, comment lui spécifier en
fait d'essayer d'acceder au fichier "base BU CDG.xls" au bout de 3
secondes mais si cela s'avère infructieux au bout de 3 essais, de passer
à la suite de l'instruction à, "suite:"
'En tête de module
Option Explicit
Public RunWhen As Variant 'programmation horaire
Public Const cRunIntervalSeconds = 3 ' 2secondes
Public Const cRunWhat = "macro1" 'nom de l'instruction à exécuter
Sub macro1()
'si le répertoire P: n'existe plus momentanement
On Error GoTo attente
ChDir "P:EQUIPEMENT"
Workbooks.Open Filename:="P:EQUIPEMENTbase BU CDG.xls"
'ici la suite de la macro
'continue l'instruction si pas de plantage P:
Windows("base BU CDG.xls").Activate
Sheets("Statistiques").Select
Range("A5").Select
'j'aimerais que la macro passe à cette instructions dès lors qu'au bout
de
'3 essais d'ouverture de ("base BU CDG.xls") ne passe pas et signifirait
un plantage serveur et
'non pas que le fichier soit en cours d'utilisation. (il ne reste pas
ouvert plus de 2secondes par traitement)
Suite:
Windows("enlevement2008.xls").Activate
' Va à la page de garde
Sheets("pickup").Select
Range("A1").Select
Collection.Hide
Unload Collection
ActiveWorkbook.Save
Exit Sub
attente:
'ici le ontime qui rappelle ta macro si le fichier n'était pas libre
'Programmation horaire = Maintenant + 3 secondes
MsgBox "Le fichier base de données est en cours d'utilisation par un
autre utilisateur, veuillez patienter"
RunWhen = TimeValue(Now + TimeSerial(0, 0, cRunIntervalSeconds))
Application.OnTime RunWhen, cRunWhat
End Sub
Bonjour Denis,
Essaie ceci :
'--------------------------------
Sub macro1()
Static X As Integer
'si le répertoire P: n'existe plus momentanement
On Error GoTo attente
ChDir "P:EQUIPEMENT"
Workbooks.Open Filename:="P:EQUIPEMENTbase BU CDG.xls"
'ici la suite de la macro
'continue l'instruction si pas de plantage P:
Windows("base BU CDG.xls").Activate
Sheets("Statistiques").Select
Range("A5").Select
'j'aimerais que la macro passe à cette
'instructions dès lors qu'au bout de
'3 essais d'ouverture de ("base BU CDG.xls")
'ne passe pas et signifirait un plantage serveur
'et non pas que le fichier soit en cours d'utilisation.
'(il ne reste pas ouvert plus de 2secondes par traitement)
Suite:
Windows("enlevement2008.xls").Activate
' Va à la page de garde
Sheets("pickup").Select
Range("A1").Select
' Collection.Hide
' Unload Collection
ActiveWorkbook.Save
Exit Sub
attente:
'ici le ontime qui rappelle ta macro si le fichier n'était pas libre
'Programmation horaire = Maintenant + 3 secondes
MsgBox "Le fichier base de données est en cours d'utilisation" & _
vbCrLf & "par un autre utilisateur, veuillez patienter"
RunWhen = TimeValue(Now + TimeSerial(0, 0, cRunIntervalSeconds))
Application.OnTime RunWhen, cRunWhat
X = X + 1
If X > 2 Then
Resume Suite
X = 0
End If
End Sub
'--------------------------------
Salutations!
"DENIS" a écrit dans le message de news:
Bonjour à tous,
L'instruction ci-dessous donne une attente de 3 secondes puis réessaye
d'acceder au fichier "base BU CDG.xls".
Tout fonctionne très bien. Mais cette macro pour le moment est faite
pour le cas ou ce fichier ne soit pas disponible pour un très court
instant. Par contre, dans l'hypothèse ou ce fichier ne serait pas du
tout disponible à cause d'un plantage serveur, comment lui spécifier en
fait d'essayer d'acceder au fichier "base BU CDG.xls" au bout de 3
secondes mais si cela s'avère infructieux au bout de 3 essais, de passer
à la suite de l'instruction à, "suite:"
'En tête de module
Option Explicit
Public RunWhen As Variant 'programmation horaire
Public Const cRunIntervalSeconds = 3 ' 2secondes
Public Const cRunWhat = "macro1" 'nom de l'instruction à exécuter
Sub macro1()
'si le répertoire P: n'existe plus momentanement
On Error GoTo attente
ChDir "P:EQUIPEMENT"
Workbooks.Open Filename:="P:EQUIPEMENTbase BU CDG.xls"
'ici la suite de la macro
'continue l'instruction si pas de plantage P:
Windows("base BU CDG.xls").Activate
Sheets("Statistiques").Select
Range("A5").Select
'j'aimerais que la macro passe à cette instructions dès lors qu'au bout
de
'3 essais d'ouverture de ("base BU CDG.xls") ne passe pas et signifirait
un plantage serveur et
'non pas que le fichier soit en cours d'utilisation. (il ne reste pas
ouvert plus de 2secondes par traitement)
Suite:
Windows("enlevement2008.xls").Activate
' Va à la page de garde
Sheets("pickup").Select
Range("A1").Select
Collection.Hide
Unload Collection
ActiveWorkbook.Save
Exit Sub
attente:
'ici le ontime qui rappelle ta macro si le fichier n'était pas libre
'Programmation horaire = Maintenant + 3 secondes
MsgBox "Le fichier base de données est en cours d'utilisation par un
autre utilisateur, veuillez patienter"
RunWhen = TimeValue(Now + TimeSerial(0, 0, cRunIntervalSeconds))
Application.OnTime RunWhen, cRunWhat
End Sub
Bonjour Denis,
Essaie ceci :
'--------------------------------
Sub macro1()
Static X As Integer
'si le répertoire P: n'existe plus momentanement
On Error GoTo attente
ChDir "P:EQUIPEMENT"
Workbooks.Open Filename:="P:EQUIPEMENTbase BU CDG.xls"
'ici la suite de la macro
'continue l'instruction si pas de plantage P:
Windows("base BU CDG.xls").Activate
Sheets("Statistiques").Select
Range("A5").Select
'j'aimerais que la macro passe à cette
'instructions dès lors qu'au bout de
'3 essais d'ouverture de ("base BU CDG.xls")
'ne passe pas et signifirait un plantage serveur
'et non pas que le fichier soit en cours d'utilisation.
'(il ne reste pas ouvert plus de 2secondes par traitement)
Suite:
Windows("enlevement2008.xls").Activate
' Va à la page de garde
Sheets("pickup").Select
Range("A1").Select
' Collection.Hide
' Unload Collection
ActiveWorkbook.Save
Exit Sub
attente:
'ici le ontime qui rappelle ta macro si le fichier n'était pas libre
'Programmation horaire = Maintenant + 3 secondes
MsgBox "Le fichier base de données est en cours d'utilisation" & _
vbCrLf & "par un autre utilisateur, veuillez patienter"
RunWhen = TimeValue(Now + TimeSerial(0, 0, cRunIntervalSeconds))
Application.OnTime RunWhen, cRunWhat
X = X + 1
If X > 2 Then
Resume Suite
X = 0
End If
End Sub
'--------------------------------
Salutations!
"DENIS" <DENIS@discussions.microsoft.com> a écrit dans le message de news: 2E6C9C6A-2EBD-4B2A-A6FB-6D4B935E823A@microsoft.com...
Bonjour à tous,
L'instruction ci-dessous donne une attente de 3 secondes puis réessaye
d'acceder au fichier "base BU CDG.xls".
Tout fonctionne très bien. Mais cette macro pour le moment est faite
pour le cas ou ce fichier ne soit pas disponible pour un très court
instant. Par contre, dans l'hypothèse ou ce fichier ne serait pas du
tout disponible à cause d'un plantage serveur, comment lui spécifier en
fait d'essayer d'acceder au fichier "base BU CDG.xls" au bout de 3
secondes mais si cela s'avère infructieux au bout de 3 essais, de passer
à la suite de l'instruction à, "suite:"
'En tête de module
Option Explicit
Public RunWhen As Variant 'programmation horaire
Public Const cRunIntervalSeconds = 3 ' 2secondes
Public Const cRunWhat = "macro1" 'nom de l'instruction à exécuter
Sub macro1()
'si le répertoire P: n'existe plus momentanement
On Error GoTo attente
ChDir "P:EQUIPEMENT"
Workbooks.Open Filename:="P:EQUIPEMENTbase BU CDG.xls"
'ici la suite de la macro
'continue l'instruction si pas de plantage P:
Windows("base BU CDG.xls").Activate
Sheets("Statistiques").Select
Range("A5").Select
'j'aimerais que la macro passe à cette instructions dès lors qu'au bout
de
'3 essais d'ouverture de ("base BU CDG.xls") ne passe pas et signifirait
un plantage serveur et
'non pas que le fichier soit en cours d'utilisation. (il ne reste pas
ouvert plus de 2secondes par traitement)
Suite:
Windows("enlevement2008.xls").Activate
' Va à la page de garde
Sheets("pickup").Select
Range("A1").Select
Collection.Hide
Unload Collection
ActiveWorkbook.Save
Exit Sub
attente:
'ici le ontime qui rappelle ta macro si le fichier n'était pas libre
'Programmation horaire = Maintenant + 3 secondes
MsgBox "Le fichier base de données est en cours d'utilisation par un
autre utilisateur, veuillez patienter"
RunWhen = TimeValue(Now + TimeSerial(0, 0, cRunIntervalSeconds))
Application.OnTime RunWhen, cRunWhat
End Sub
Bonjour Denis,
Essaie ceci :
'--------------------------------
Sub macro1()
Static X As Integer
'si le répertoire P: n'existe plus momentanement
On Error GoTo attente
ChDir "P:EQUIPEMENT"
Workbooks.Open Filename:="P:EQUIPEMENTbase BU CDG.xls"
'ici la suite de la macro
'continue l'instruction si pas de plantage P:
Windows("base BU CDG.xls").Activate
Sheets("Statistiques").Select
Range("A5").Select
'j'aimerais que la macro passe à cette
'instructions dès lors qu'au bout de
'3 essais d'ouverture de ("base BU CDG.xls")
'ne passe pas et signifirait un plantage serveur
'et non pas que le fichier soit en cours d'utilisation.
'(il ne reste pas ouvert plus de 2secondes par traitement)
Suite:
Windows("enlevement2008.xls").Activate
' Va à la page de garde
Sheets("pickup").Select
Range("A1").Select
' Collection.Hide
' Unload Collection
ActiveWorkbook.Save
Exit Sub
attente:
'ici le ontime qui rappelle ta macro si le fichier n'était pas libre
'Programmation horaire = Maintenant + 3 secondes
MsgBox "Le fichier base de données est en cours d'utilisation" & _
vbCrLf & "par un autre utilisateur, veuillez patienter"
RunWhen = TimeValue(Now + TimeSerial(0, 0, cRunIntervalSeconds))
Application.OnTime RunWhen, cRunWhat
X = X + 1
If X > 2 Then
Resume Suite
X = 0
End If
End Sub
'--------------------------------
Salutations!
"DENIS" a écrit dans le message de news:
Bonjour à tous,
L'instruction ci-dessous donne une attente de 3 secondes puis réessaye
d'acceder au fichier "base BU CDG.xls".
Tout fonctionne très bien. Mais cette macro pour le moment est faite
pour le cas ou ce fichier ne soit pas disponible pour un très court
instant. Par contre, dans l'hypothèse ou ce fichier ne serait pas du
tout disponible à cause d'un plantage serveur, comment lui spécifier en
fait d'essayer d'acceder au fichier "base BU CDG.xls" au bout de 3
secondes mais si cela s'avère infructieux au bout de 3 essais, de passer
à la suite de l'instruction à, "suite:"
'En tête de module
Option Explicit
Public RunWhen As Variant 'programmation horaire
Public Const cRunIntervalSeconds = 3 ' 2secondes
Public Const cRunWhat = "macro1" 'nom de l'instruction à exécuter
Sub macro1()
'si le répertoire P: n'existe plus momentanement
On Error GoTo attente
ChDir "P:EQUIPEMENT"
Workbooks.Open Filename:="P:EQUIPEMENTbase BU CDG.xls"
'ici la suite de la macro
'continue l'instruction si pas de plantage P:
Windows("base BU CDG.xls").Activate
Sheets("Statistiques").Select
Range("A5").Select
'j'aimerais que la macro passe à cette instructions dès lors qu'au bout
de
'3 essais d'ouverture de ("base BU CDG.xls") ne passe pas et signifirait
un plantage serveur et
'non pas que le fichier soit en cours d'utilisation. (il ne reste pas
ouvert plus de 2secondes par traitement)
Suite:
Windows("enlevement2008.xls").Activate
' Va à la page de garde
Sheets("pickup").Select
Range("A1").Select
Collection.Hide
Unload Collection
ActiveWorkbook.Save
Exit Sub
attente:
'ici le ontime qui rappelle ta macro si le fichier n'était pas libre
'Programmation horaire = Maintenant + 3 secondes
MsgBox "Le fichier base de données est en cours d'utilisation par un
autre utilisateur, veuillez patienter"
RunWhen = TimeValue(Now + TimeSerial(0, 0, cRunIntervalSeconds))
Application.OnTime RunWhen, cRunWhat
End Sub
Bonjour Denis,
Essaie ceci :
'--------------------------------
Sub macro1()
Static X As Integer
'si le répertoire P: n'existe plus momentanement
On Error GoTo attente
ChDir "P:EQUIPEMENT"
Workbooks.Open Filename:="P:EQUIPEMENTbase BU CDG.xls"
'ici la suite de la macro
'continue l'instruction si pas de plantage P:
Windows("base BU CDG.xls").Activate
Sheets("Statistiques").Select
Range("A5").Select
'j'aimerais que la macro passe à cette
'instructions dès lors qu'au bout de
'3 essais d'ouverture de ("base BU CDG.xls")
'ne passe pas et signifirait un plantage serveur
'et non pas que le fichier soit en cours d'utilisation.
'(il ne reste pas ouvert plus de 2secondes par traitement)
Suite:
Windows("enlevement2008.xls").Activate
' Va à la page de garde
Sheets("pickup").Select
Range("A1").Select
' Collection.Hide
' Unload Collection
ActiveWorkbook.Save
Exit Sub
attente:
'ici le ontime qui rappelle ta macro si le fichier n'était pas libre
'Programmation horaire = Maintenant + 3 secondes
MsgBox "Le fichier base de données est en cours d'utilisation" & _
vbCrLf & "par un autre utilisateur, veuillez patienter"
RunWhen = TimeValue(Now + TimeSerial(0, 0, cRunIntervalSeconds))
Application.OnTime RunWhen, cRunWhat
X = X + 1
If X > 2 Then
Resume Suite
X = 0
End If
End Sub
'--------------------------------
Salutations!
"DENIS" a écrit dans le message de news:
Bonjour à tous,
L'instruction ci-dessous donne une attente de 3 secondes puis réessaye
d'acceder au fichier "base BU CDG.xls".
Tout fonctionne très bien. Mais cette macro pour le moment est faite
pour le cas ou ce fichier ne soit pas disponible pour un très court
instant. Par contre, dans l'hypothèse ou ce fichier ne serait pas du
tout disponible à cause d'un plantage serveur, comment lui spécifier en
fait d'essayer d'acceder au fichier "base BU CDG.xls" au bout de 3
secondes mais si cela s'avère infructieux au bout de 3 essais, de passer
à la suite de l'instruction à, "suite:"
'En tête de module
Option Explicit
Public RunWhen As Variant 'programmation horaire
Public Const cRunIntervalSeconds = 3 ' 2secondes
Public Const cRunWhat = "macro1" 'nom de l'instruction à exécuter
Sub macro1()
'si le répertoire P: n'existe plus momentanement
On Error GoTo attente
ChDir "P:EQUIPEMENT"
Workbooks.Open Filename:="P:EQUIPEMENTbase BU CDG.xls"
'ici la suite de la macro
'continue l'instruction si pas de plantage P:
Windows("base BU CDG.xls").Activate
Sheets("Statistiques").Select
Range("A5").Select
'j'aimerais que la macro passe à cette instructions dès lors qu'au bout
de
'3 essais d'ouverture de ("base BU CDG.xls") ne passe pas et signifirait
un plantage serveur et
'non pas que le fichier soit en cours d'utilisation. (il ne reste pas
ouvert plus de 2secondes par traitement)
Suite:
Windows("enlevement2008.xls").Activate
' Va à la page de garde
Sheets("pickup").Select
Range("A1").Select
Collection.Hide
Unload Collection
ActiveWorkbook.Save
Exit Sub
attente:
'ici le ontime qui rappelle ta macro si le fichier n'était pas libre
'Programmation horaire = Maintenant + 3 secondes
MsgBox "Le fichier base de données est en cours d'utilisation par un
autre utilisateur, veuillez patienter"
RunWhen = TimeValue(Now + TimeSerial(0, 0, cRunIntervalSeconds))
Application.OnTime RunWhen, cRunWhat
End Sub
Bonjour Denis,
Essaie ceci :
'--------------------------------
Sub macro1()
Static X As Integer
'si le répertoire P: n'existe plus momentanement
On Error GoTo attente
ChDir "P:EQUIPEMENT"
Workbooks.Open Filename:="P:EQUIPEMENTbase BU CDG.xls"
'ici la suite de la macro
'continue l'instruction si pas de plantage P:
Windows("base BU CDG.xls").Activate
Sheets("Statistiques").Select
Range("A5").Select
'j'aimerais que la macro passe à cette
'instructions dès lors qu'au bout de
'3 essais d'ouverture de ("base BU CDG.xls")
'ne passe pas et signifirait un plantage serveur
'et non pas que le fichier soit en cours d'utilisation.
'(il ne reste pas ouvert plus de 2secondes par traitement)
Suite:
Windows("enlevement2008.xls").Activate
' Va à la page de garde
Sheets("pickup").Select
Range("A1").Select
' Collection.Hide
' Unload Collection
ActiveWorkbook.Save
Exit Sub
attente:
'ici le ontime qui rappelle ta macro si le fichier n'était pas libre
'Programmation horaire = Maintenant + 3 secondes
MsgBox "Le fichier base de données est en cours d'utilisation" & _
vbCrLf & "par un autre utilisateur, veuillez patienter"
RunWhen = TimeValue(Now + TimeSerial(0, 0, cRunIntervalSeconds))
Application.OnTime RunWhen, cRunWhat
X = X + 1
If X > 2 Then
Resume Suite
X = 0
End If
End Sub
'--------------------------------
Salutations!
"DENIS" <DENIS@discussions.microsoft.com> a écrit dans le message de news: 2E6C9C6A-2EBD-4B2A-A6FB-6D4B935E823A@microsoft.com...
Bonjour à tous,
L'instruction ci-dessous donne une attente de 3 secondes puis réessaye
d'acceder au fichier "base BU CDG.xls".
Tout fonctionne très bien. Mais cette macro pour le moment est faite
pour le cas ou ce fichier ne soit pas disponible pour un très court
instant. Par contre, dans l'hypothèse ou ce fichier ne serait pas du
tout disponible à cause d'un plantage serveur, comment lui spécifier en
fait d'essayer d'acceder au fichier "base BU CDG.xls" au bout de 3
secondes mais si cela s'avère infructieux au bout de 3 essais, de passer
à la suite de l'instruction à, "suite:"
'En tête de module
Option Explicit
Public RunWhen As Variant 'programmation horaire
Public Const cRunIntervalSeconds = 3 ' 2secondes
Public Const cRunWhat = "macro1" 'nom de l'instruction à exécuter
Sub macro1()
'si le répertoire P: n'existe plus momentanement
On Error GoTo attente
ChDir "P:EQUIPEMENT"
Workbooks.Open Filename:="P:EQUIPEMENTbase BU CDG.xls"
'ici la suite de la macro
'continue l'instruction si pas de plantage P:
Windows("base BU CDG.xls").Activate
Sheets("Statistiques").Select
Range("A5").Select
'j'aimerais que la macro passe à cette instructions dès lors qu'au bout
de
'3 essais d'ouverture de ("base BU CDG.xls") ne passe pas et signifirait
un plantage serveur et
'non pas que le fichier soit en cours d'utilisation. (il ne reste pas
ouvert plus de 2secondes par traitement)
Suite:
Windows("enlevement2008.xls").Activate
' Va à la page de garde
Sheets("pickup").Select
Range("A1").Select
Collection.Hide
Unload Collection
ActiveWorkbook.Save
Exit Sub
attente:
'ici le ontime qui rappelle ta macro si le fichier n'était pas libre
'Programmation horaire = Maintenant + 3 secondes
MsgBox "Le fichier base de données est en cours d'utilisation par un
autre utilisateur, veuillez patienter"
RunWhen = TimeValue(Now + TimeSerial(0, 0, cRunIntervalSeconds))
Application.OnTime RunWhen, cRunWhat
End Sub
Bonjour Denis,
Essaie ceci :
'--------------------------------
Sub macro1()
Static X As Integer
'si le répertoire P: n'existe plus momentanement
On Error GoTo attente
ChDir "P:EQUIPEMENT"
Workbooks.Open Filename:="P:EQUIPEMENTbase BU CDG.xls"
'ici la suite de la macro
'continue l'instruction si pas de plantage P:
Windows("base BU CDG.xls").Activate
Sheets("Statistiques").Select
Range("A5").Select
'j'aimerais que la macro passe à cette
'instructions dès lors qu'au bout de
'3 essais d'ouverture de ("base BU CDG.xls")
'ne passe pas et signifirait un plantage serveur
'et non pas que le fichier soit en cours d'utilisation.
'(il ne reste pas ouvert plus de 2secondes par traitement)
Suite:
Windows("enlevement2008.xls").Activate
' Va à la page de garde
Sheets("pickup").Select
Range("A1").Select
' Collection.Hide
' Unload Collection
ActiveWorkbook.Save
Exit Sub
attente:
'ici le ontime qui rappelle ta macro si le fichier n'était pas libre
'Programmation horaire = Maintenant + 3 secondes
MsgBox "Le fichier base de données est en cours d'utilisation" & _
vbCrLf & "par un autre utilisateur, veuillez patienter"
RunWhen = TimeValue(Now + TimeSerial(0, 0, cRunIntervalSeconds))
Application.OnTime RunWhen, cRunWhat
X = X + 1
If X > 2 Then
Resume Suite
X = 0
End If
End Sub
'--------------------------------
Salutations!
"DENIS" a écrit dans le message de news:
Bonjour à tous,
L'instruction ci-dessous donne une attente de 3 secondes puis réessaye
d'acceder au fichier "base BU CDG.xls".
Tout fonctionne très bien. Mais cette macro pour le moment est faite
pour le cas ou ce fichier ne soit pas disponible pour un très court
instant. Par contre, dans l'hypothèse ou ce fichier ne serait pas du
tout disponible à cause d'un plantage serveur, comment lui spécifier en
fait d'essayer d'acceder au fichier "base BU CDG.xls" au bout de 3
secondes mais si cela s'avère infructieux au bout de 3 essais, de passer
à la suite de l'instruction à, "suite:"
'En tête de module
Option Explicit
Public RunWhen As Variant 'programmation horaire
Public Const cRunIntervalSeconds = 3 ' 2secondes
Public Const cRunWhat = "macro1" 'nom de l'instruction à exécuter
Sub macro1()
'si le répertoire P: n'existe plus momentanement
On Error GoTo attente
ChDir "P:EQUIPEMENT"
Workbooks.Open Filename:="P:EQUIPEMENTbase BU CDG.xls"
'ici la suite de la macro
'continue l'instruction si pas de plantage P:
Windows("base BU CDG.xls").Activate
Sheets("Statistiques").Select
Range("A5").Select
'j'aimerais que la macro passe à cette instructions dès lors qu'au bout
de
'3 essais d'ouverture de ("base BU CDG.xls") ne passe pas et signifirait
un plantage serveur et
'non pas que le fichier soit en cours d'utilisation. (il ne reste pas
ouvert plus de 2secondes par traitement)
Suite:
Windows("enlevement2008.xls").Activate
' Va à la page de garde
Sheets("pickup").Select
Range("A1").Select
Collection.Hide
Unload Collection
ActiveWorkbook.Save
Exit Sub
attente:
'ici le ontime qui rappelle ta macro si le fichier n'était pas libre
'Programmation horaire = Maintenant + 3 secondes
MsgBox "Le fichier base de données est en cours d'utilisation par un
autre utilisateur, veuillez patienter"
RunWhen = TimeValue(Now + TimeSerial(0, 0, cRunIntervalSeconds))
Application.OnTime RunWhen, cRunWhat
End Sub
Bonjour Denis,
Il va te falloir faire quelques tests pour déterminer le type d'erreur (Err.Number) qui est généré lorsque le fichier est
inaccessible, et adapter la gestion d'erreur selon ce que tu trouveras !
'En tête de module
Option Explicit
Public RunWhen As Variant 'programmation horaire
Public Const cRunIntervalSeconds = 3 ' 2secondes
Public Const cRunWhat = "macro1" 'nom de l'instruction à exécuter
'--------------------------------------------
Sub macro1()
Dim A As String
Static X As Integer
'si le répertoire P: n'existe plus momentanement
On Error GoTo attente
ChDir "P:EQUIPEMENT"
Workbooks.Open Filename:="P:EQUIPEMENTbase BU CDG.xls"
'ici la suite de la macro
'continue l'instruction si pas de plantage P:
Windows("base BU CDG.xls").Activate
Sheets("Statistiques").Select
Range("A5").Select
'j'aimerais que la macro passe à cette
'instructions dès lors qu'au bout de
'3 essais d'ouverture de ("base BU CDG.xls")
'ne passe pas et signifirait un plantage serveur
'et non pas que le fichier soit en cours d'utilisation.
'(il ne reste pas ouvert plus de 2secondes par traitement)
Suite:
Windows("enlevement2008.xls").Activate
' Va à la page de garde
Sheets("pickup").Select
Range("A1").Select
' Collection.Hide
' Unload Collection
ActiveWorkbook.Save
Exit Sub
attente:
'ici le ontime qui rappelle ta macro si le fichier n'était pas libre
Select Case Err.Number
Case 9 ' L'indice n'appartient pas à la sélection
MsgBox Err.Number & " : " & Err.Description
Case 76 ' chemin introuvable
X = X + 1
If X <= 2 Then
Err = 0
MsgBox "Le fichier base de données est en cours d'utilisation" & _
vbCrLf & "par un autre utilisateur, veuillez patienter"
'Programmation horaire = Maintenant + 3 secondes
RunWhen = TimeValue(Now + TimeSerial(0, 0, cRunIntervalSeconds))
Application.OnTime RunWhen, cRunWhat
Else
Resume Suite
X = 0
End If
Case 1004 ' vérifier le nom du classeur
MsgBox Err.Number & " : " & Err.Description
End Select
End Sub
'--------------------------------------------
Salutations!
"DENIS" a écrit dans le message de news:
Bonsoir,
J'ai essayé et en rajoutant en début de module :
Option Explicit
Public RunWhen As Variant 'programmation horaire
Public Const cRunIntervalSeconds = 3 ' 2secondes
Public Const cRunWhat = "macro1" 'nom de l'instruction à exécuter
mais, au bout de 3 fois de : (en admetant que le fichier "base BU CDG.xls"
ne soit pas du tout accessible)
'Programmation horaire = Maintenant + 3 secondes
MsgBox "Le fichier base de données est en cours d'utilisation" & _
vbCrLf & "par un autre utilisateur, veuillez patienter"
La boucle ne s'arrete plus et un ctrl alt sup est necessaire alors qu'elle
devrait juste faire ceci.
Suite:
Windows("enlevement2008.xls").Activate
' Va à la page de garde
Sheets("pickup").Select
Range("A1").Select
' Collection.Hide
' Unload Collection
ActiveWorkbook.Save
DenisBonjour Denis,
Essaie ceci :
'--------------------------------
Sub macro1()
Static X As Integer
'si le répertoire P: n'existe plus momentanement
On Error GoTo attente
ChDir "P:EQUIPEMENT"
Workbooks.Open Filename:="P:EQUIPEMENTbase BU CDG.xls"
'ici la suite de la macro
'continue l'instruction si pas de plantage P:
Windows("base BU CDG.xls").Activate
Sheets("Statistiques").Select
Range("A5").Select
'j'aimerais que la macro passe à cette
'instructions dès lors qu'au bout de
'3 essais d'ouverture de ("base BU CDG.xls")
'ne passe pas et signifirait un plantage serveur
'et non pas que le fichier soit en cours d'utilisation.
'(il ne reste pas ouvert plus de 2secondes par traitement)
Suite:
Windows("enlevement2008.xls").Activate
' Va à la page de garde
Sheets("pickup").Select
Range("A1").Select
' Collection.Hide
' Unload Collection
ActiveWorkbook.Save
Exit Sub
attente:
'ici le ontime qui rappelle ta macro si le fichier n'était pas libre
'Programmation horaire = Maintenant + 3 secondes
MsgBox "Le fichier base de données est en cours d'utilisation" & _
vbCrLf & "par un autre utilisateur, veuillez patienter"
RunWhen = TimeValue(Now + TimeSerial(0, 0, cRunIntervalSeconds))
Application.OnTime RunWhen, cRunWhat
X = X + 1
If X > 2 Then
Resume Suite
X = 0
End If
End Sub
'--------------------------------
Salutations!
"DENIS" a écrit dans le message de news:
Bonjour à tous,
L'instruction ci-dessous donne une attente de 3 secondes puis réessaye
d'acceder au fichier "base BU CDG.xls".
Tout fonctionne très bien. Mais cette macro pour le moment est faite
pour le cas ou ce fichier ne soit pas disponible pour un très court
instant. Par contre, dans l'hypothèse ou ce fichier ne serait pas du
tout disponible à cause d'un plantage serveur, comment lui spécifier en
fait d'essayer d'acceder au fichier "base BU CDG.xls" au bout de 3
secondes mais si cela s'avère infructieux au bout de 3 essais, de passer
à la suite de l'instruction à, "suite:"
'En tête de module
Option Explicit
Public RunWhen As Variant 'programmation horaire
Public Const cRunIntervalSeconds = 3 ' 2secondes
Public Const cRunWhat = "macro1" 'nom de l'instruction à exécuter
Sub macro1()
'si le répertoire P: n'existe plus momentanement
On Error GoTo attente
ChDir "P:EQUIPEMENT"
Workbooks.Open Filename:="P:EQUIPEMENTbase BU CDG.xls"
'ici la suite de la macro
'continue l'instruction si pas de plantage P:
Windows("base BU CDG.xls").Activate
Sheets("Statistiques").Select
Range("A5").Select
'j'aimerais que la macro passe à cette instructions dès lors qu'au bout
de
'3 essais d'ouverture de ("base BU CDG.xls") ne passe pas et signifirait
un plantage serveur et
'non pas que le fichier soit en cours d'utilisation. (il ne reste pas
ouvert plus de 2secondes par traitement)
Suite:
Windows("enlevement2008.xls").Activate
' Va à la page de garde
Sheets("pickup").Select
Range("A1").Select
Collection.Hide
Unload Collection
ActiveWorkbook.Save
Exit Sub
attente:
'ici le ontime qui rappelle ta macro si le fichier n'était pas libre
'Programmation horaire = Maintenant + 3 secondes
MsgBox "Le fichier base de données est en cours d'utilisation par un
autre utilisateur, veuillez patienter"
RunWhen = TimeValue(Now + TimeSerial(0, 0, cRunIntervalSeconds))
Application.OnTime RunWhen, cRunWhat
End Sub
Bonjour Denis,
Il va te falloir faire quelques tests pour déterminer le type d'erreur (Err.Number) qui est généré lorsque le fichier est
inaccessible, et adapter la gestion d'erreur selon ce que tu trouveras !
'En tête de module
Option Explicit
Public RunWhen As Variant 'programmation horaire
Public Const cRunIntervalSeconds = 3 ' 2secondes
Public Const cRunWhat = "macro1" 'nom de l'instruction à exécuter
'--------------------------------------------
Sub macro1()
Dim A As String
Static X As Integer
'si le répertoire P: n'existe plus momentanement
On Error GoTo attente
ChDir "P:EQUIPEMENT"
Workbooks.Open Filename:="P:EQUIPEMENTbase BU CDG.xls"
'ici la suite de la macro
'continue l'instruction si pas de plantage P:
Windows("base BU CDG.xls").Activate
Sheets("Statistiques").Select
Range("A5").Select
'j'aimerais que la macro passe à cette
'instructions dès lors qu'au bout de
'3 essais d'ouverture de ("base BU CDG.xls")
'ne passe pas et signifirait un plantage serveur
'et non pas que le fichier soit en cours d'utilisation.
'(il ne reste pas ouvert plus de 2secondes par traitement)
Suite:
Windows("enlevement2008.xls").Activate
' Va à la page de garde
Sheets("pickup").Select
Range("A1").Select
' Collection.Hide
' Unload Collection
ActiveWorkbook.Save
Exit Sub
attente:
'ici le ontime qui rappelle ta macro si le fichier n'était pas libre
Select Case Err.Number
Case 9 ' L'indice n'appartient pas à la sélection
MsgBox Err.Number & " : " & Err.Description
Case 76 ' chemin introuvable
X = X + 1
If X <= 2 Then
Err = 0
MsgBox "Le fichier base de données est en cours d'utilisation" & _
vbCrLf & "par un autre utilisateur, veuillez patienter"
'Programmation horaire = Maintenant + 3 secondes
RunWhen = TimeValue(Now + TimeSerial(0, 0, cRunIntervalSeconds))
Application.OnTime RunWhen, cRunWhat
Else
Resume Suite
X = 0
End If
Case 1004 ' vérifier le nom du classeur
MsgBox Err.Number & " : " & Err.Description
End Select
End Sub
'--------------------------------------------
Salutations!
"DENIS" <DENIS@discussions.microsoft.com> a écrit dans le message de news: 68CA4316-039F-40DB-BA50-A3D37503C6FE@microsoft.com...
Bonsoir,
J'ai essayé et en rajoutant en début de module :
Option Explicit
Public RunWhen As Variant 'programmation horaire
Public Const cRunIntervalSeconds = 3 ' 2secondes
Public Const cRunWhat = "macro1" 'nom de l'instruction à exécuter
mais, au bout de 3 fois de : (en admetant que le fichier "base BU CDG.xls"
ne soit pas du tout accessible)
'Programmation horaire = Maintenant + 3 secondes
MsgBox "Le fichier base de données est en cours d'utilisation" & _
vbCrLf & "par un autre utilisateur, veuillez patienter"
La boucle ne s'arrete plus et un ctrl alt sup est necessaire alors qu'elle
devrait juste faire ceci.
Suite:
Windows("enlevement2008.xls").Activate
' Va à la page de garde
Sheets("pickup").Select
Range("A1").Select
' Collection.Hide
' Unload Collection
ActiveWorkbook.Save
Denis
Bonjour Denis,
Essaie ceci :
'--------------------------------
Sub macro1()
Static X As Integer
'si le répertoire P: n'existe plus momentanement
On Error GoTo attente
ChDir "P:EQUIPEMENT"
Workbooks.Open Filename:="P:EQUIPEMENTbase BU CDG.xls"
'ici la suite de la macro
'continue l'instruction si pas de plantage P:
Windows("base BU CDG.xls").Activate
Sheets("Statistiques").Select
Range("A5").Select
'j'aimerais que la macro passe à cette
'instructions dès lors qu'au bout de
'3 essais d'ouverture de ("base BU CDG.xls")
'ne passe pas et signifirait un plantage serveur
'et non pas que le fichier soit en cours d'utilisation.
'(il ne reste pas ouvert plus de 2secondes par traitement)
Suite:
Windows("enlevement2008.xls").Activate
' Va à la page de garde
Sheets("pickup").Select
Range("A1").Select
' Collection.Hide
' Unload Collection
ActiveWorkbook.Save
Exit Sub
attente:
'ici le ontime qui rappelle ta macro si le fichier n'était pas libre
'Programmation horaire = Maintenant + 3 secondes
MsgBox "Le fichier base de données est en cours d'utilisation" & _
vbCrLf & "par un autre utilisateur, veuillez patienter"
RunWhen = TimeValue(Now + TimeSerial(0, 0, cRunIntervalSeconds))
Application.OnTime RunWhen, cRunWhat
X = X + 1
If X > 2 Then
Resume Suite
X = 0
End If
End Sub
'--------------------------------
Salutations!
"DENIS" <DENIS@discussions.microsoft.com> a écrit dans le message de news: 2E6C9C6A-2EBD-4B2A-A6FB-6D4B935E823A@microsoft.com...
Bonjour à tous,
L'instruction ci-dessous donne une attente de 3 secondes puis réessaye
d'acceder au fichier "base BU CDG.xls".
Tout fonctionne très bien. Mais cette macro pour le moment est faite
pour le cas ou ce fichier ne soit pas disponible pour un très court
instant. Par contre, dans l'hypothèse ou ce fichier ne serait pas du
tout disponible à cause d'un plantage serveur, comment lui spécifier en
fait d'essayer d'acceder au fichier "base BU CDG.xls" au bout de 3
secondes mais si cela s'avère infructieux au bout de 3 essais, de passer
à la suite de l'instruction à, "suite:"
'En tête de module
Option Explicit
Public RunWhen As Variant 'programmation horaire
Public Const cRunIntervalSeconds = 3 ' 2secondes
Public Const cRunWhat = "macro1" 'nom de l'instruction à exécuter
Sub macro1()
'si le répertoire P: n'existe plus momentanement
On Error GoTo attente
ChDir "P:EQUIPEMENT"
Workbooks.Open Filename:="P:EQUIPEMENTbase BU CDG.xls"
'ici la suite de la macro
'continue l'instruction si pas de plantage P:
Windows("base BU CDG.xls").Activate
Sheets("Statistiques").Select
Range("A5").Select
'j'aimerais que la macro passe à cette instructions dès lors qu'au bout
de
'3 essais d'ouverture de ("base BU CDG.xls") ne passe pas et signifirait
un plantage serveur et
'non pas que le fichier soit en cours d'utilisation. (il ne reste pas
ouvert plus de 2secondes par traitement)
Suite:
Windows("enlevement2008.xls").Activate
' Va à la page de garde
Sheets("pickup").Select
Range("A1").Select
Collection.Hide
Unload Collection
ActiveWorkbook.Save
Exit Sub
attente:
'ici le ontime qui rappelle ta macro si le fichier n'était pas libre
'Programmation horaire = Maintenant + 3 secondes
MsgBox "Le fichier base de données est en cours d'utilisation par un
autre utilisateur, veuillez patienter"
RunWhen = TimeValue(Now + TimeSerial(0, 0, cRunIntervalSeconds))
Application.OnTime RunWhen, cRunWhat
End Sub
Bonjour Denis,
Il va te falloir faire quelques tests pour déterminer le type d'erreur (Err.Number) qui est généré lorsque le fichier est
inaccessible, et adapter la gestion d'erreur selon ce que tu trouveras !
'En tête de module
Option Explicit
Public RunWhen As Variant 'programmation horaire
Public Const cRunIntervalSeconds = 3 ' 2secondes
Public Const cRunWhat = "macro1" 'nom de l'instruction à exécuter
'--------------------------------------------
Sub macro1()
Dim A As String
Static X As Integer
'si le répertoire P: n'existe plus momentanement
On Error GoTo attente
ChDir "P:EQUIPEMENT"
Workbooks.Open Filename:="P:EQUIPEMENTbase BU CDG.xls"
'ici la suite de la macro
'continue l'instruction si pas de plantage P:
Windows("base BU CDG.xls").Activate
Sheets("Statistiques").Select
Range("A5").Select
'j'aimerais que la macro passe à cette
'instructions dès lors qu'au bout de
'3 essais d'ouverture de ("base BU CDG.xls")
'ne passe pas et signifirait un plantage serveur
'et non pas que le fichier soit en cours d'utilisation.
'(il ne reste pas ouvert plus de 2secondes par traitement)
Suite:
Windows("enlevement2008.xls").Activate
' Va à la page de garde
Sheets("pickup").Select
Range("A1").Select
' Collection.Hide
' Unload Collection
ActiveWorkbook.Save
Exit Sub
attente:
'ici le ontime qui rappelle ta macro si le fichier n'était pas libre
Select Case Err.Number
Case 9 ' L'indice n'appartient pas à la sélection
MsgBox Err.Number & " : " & Err.Description
Case 76 ' chemin introuvable
X = X + 1
If X <= 2 Then
Err = 0
MsgBox "Le fichier base de données est en cours d'utilisation" & _
vbCrLf & "par un autre utilisateur, veuillez patienter"
'Programmation horaire = Maintenant + 3 secondes
RunWhen = TimeValue(Now + TimeSerial(0, 0, cRunIntervalSeconds))
Application.OnTime RunWhen, cRunWhat
Else
Resume Suite
X = 0
End If
Case 1004 ' vérifier le nom du classeur
MsgBox Err.Number & " : " & Err.Description
End Select
End Sub
'--------------------------------------------
Salutations!
"DENIS" a écrit dans le message de news:
Bonsoir,
J'ai essayé et en rajoutant en début de module :
Option Explicit
Public RunWhen As Variant 'programmation horaire
Public Const cRunIntervalSeconds = 3 ' 2secondes
Public Const cRunWhat = "macro1" 'nom de l'instruction à exécuter
mais, au bout de 3 fois de : (en admetant que le fichier "base BU CDG.xls"
ne soit pas du tout accessible)
'Programmation horaire = Maintenant + 3 secondes
MsgBox "Le fichier base de données est en cours d'utilisation" & _
vbCrLf & "par un autre utilisateur, veuillez patienter"
La boucle ne s'arrete plus et un ctrl alt sup est necessaire alors qu'elle
devrait juste faire ceci.
Suite:
Windows("enlevement2008.xls").Activate
' Va à la page de garde
Sheets("pickup").Select
Range("A1").Select
' Collection.Hide
' Unload Collection
ActiveWorkbook.Save
DenisBonjour Denis,
Essaie ceci :
'--------------------------------
Sub macro1()
Static X As Integer
'si le répertoire P: n'existe plus momentanement
On Error GoTo attente
ChDir "P:EQUIPEMENT"
Workbooks.Open Filename:="P:EQUIPEMENTbase BU CDG.xls"
'ici la suite de la macro
'continue l'instruction si pas de plantage P:
Windows("base BU CDG.xls").Activate
Sheets("Statistiques").Select
Range("A5").Select
'j'aimerais que la macro passe à cette
'instructions dès lors qu'au bout de
'3 essais d'ouverture de ("base BU CDG.xls")
'ne passe pas et signifirait un plantage serveur
'et non pas que le fichier soit en cours d'utilisation.
'(il ne reste pas ouvert plus de 2secondes par traitement)
Suite:
Windows("enlevement2008.xls").Activate
' Va à la page de garde
Sheets("pickup").Select
Range("A1").Select
' Collection.Hide
' Unload Collection
ActiveWorkbook.Save
Exit Sub
attente:
'ici le ontime qui rappelle ta macro si le fichier n'était pas libre
'Programmation horaire = Maintenant + 3 secondes
MsgBox "Le fichier base de données est en cours d'utilisation" & _
vbCrLf & "par un autre utilisateur, veuillez patienter"
RunWhen = TimeValue(Now + TimeSerial(0, 0, cRunIntervalSeconds))
Application.OnTime RunWhen, cRunWhat
X = X + 1
If X > 2 Then
Resume Suite
X = 0
End If
End Sub
'--------------------------------
Salutations!
"DENIS" a écrit dans le message de news:
Bonjour à tous,
L'instruction ci-dessous donne une attente de 3 secondes puis réessaye
d'acceder au fichier "base BU CDG.xls".
Tout fonctionne très bien. Mais cette macro pour le moment est faite
pour le cas ou ce fichier ne soit pas disponible pour un très court
instant. Par contre, dans l'hypothèse ou ce fichier ne serait pas du
tout disponible à cause d'un plantage serveur, comment lui spécifier en
fait d'essayer d'acceder au fichier "base BU CDG.xls" au bout de 3
secondes mais si cela s'avère infructieux au bout de 3 essais, de passer
à la suite de l'instruction à, "suite:"
'En tête de module
Option Explicit
Public RunWhen As Variant 'programmation horaire
Public Const cRunIntervalSeconds = 3 ' 2secondes
Public Const cRunWhat = "macro1" 'nom de l'instruction à exécuter
Sub macro1()
'si le répertoire P: n'existe plus momentanement
On Error GoTo attente
ChDir "P:EQUIPEMENT"
Workbooks.Open Filename:="P:EQUIPEMENTbase BU CDG.xls"
'ici la suite de la macro
'continue l'instruction si pas de plantage P:
Windows("base BU CDG.xls").Activate
Sheets("Statistiques").Select
Range("A5").Select
'j'aimerais que la macro passe à cette instructions dès lors qu'au bout
de
'3 essais d'ouverture de ("base BU CDG.xls") ne passe pas et signifirait
un plantage serveur et
'non pas que le fichier soit en cours d'utilisation. (il ne reste pas
ouvert plus de 2secondes par traitement)
Suite:
Windows("enlevement2008.xls").Activate
' Va à la page de garde
Sheets("pickup").Select
Range("A1").Select
Collection.Hide
Unload Collection
ActiveWorkbook.Save
Exit Sub
attente:
'ici le ontime qui rappelle ta macro si le fichier n'était pas libre
'Programmation horaire = Maintenant + 3 secondes
MsgBox "Le fichier base de données est en cours d'utilisation par un
autre utilisateur, veuillez patienter"
RunWhen = TimeValue(Now + TimeSerial(0, 0, cRunIntervalSeconds))
Application.OnTime RunWhen, cRunWhat
End Sub