vba_détecter indisponibilité fichier en cours

philppe27

XLDnaute Occasionnel
Bonjour,

Par l'intermédiaire des tâches planifiées de windows je lance un fichier toutes les heures avec une macro à l'ouverture du fichier. jusque là tout va bien.
Il se peut que pour des raisons difficilement prévisibles que la macro lancée plante.
Est-il possible lors du lancement du fichier, l'heure suivante, de détecter cette anomalie et par exemple lancer une impression avec un message d'alerte.
Merci d'avance pour votre aide ? même avec une autre solution...
 

Herdet

Nous a quitté
Repose en paix
Re : vba_détecter indisponibilité fichier en cours

Bonjour,

Par l'intermédiaire des tâches planifiées de windows je lance un fichier toutes les heures avec une macro à l'ouverture du fichier. jusque là tout va bien.
Il se peut que pour des raisons difficilement prévisibles que la macro lancée plante.
Est-il possible lors du lancement du fichier, l'heure suivante, de détecter cette anomalie et par exemple lancer une impression avec un message d'alerte.
Merci d'avance pour votre aide ? même avec une autre solution...
Bonsoir,
J'ai une solution à adapter à ton problème qui en cas d'erreur à l'ouverture, écrit la date et l'erreur dans un fichier texte qui garde ainsi un historique des erreurs.
Tu peux ajouter si nécessaire :
- une impression du fichier
- la fermeture du programme sans enregistrement

Cordialement
Robert

Code:
Private Sub Workbook_Open()
   Test_erreur_ouverture
End Sub

Sub Test_erreur_ouverture()
   '.....................


   On Error GoTo 0
   ' code du programme
   Err.Clear
   On Error GoTo ERR_EXE
   ' tests d'erreur
   Err.Raise 6       ' Dépassement de capacité
   'n = 10 / 0        ' Division par zéro
   
   On Error GoTo 0
   MsgBox "OK sans erreur"    ' contrôle à supprimer plus tard
   Exit Sub
   
ERR_EXE:
   ' gestion d'erreur
   If Err.Number <> 0 Then
      Msg = Format(Now, "yyyymmdd") & "-" & Format(Now, "hh:mm:ss") & " : l'erreur # " & Str(Err.Number) & _
            " a été générée par le fichier " & Chr(34) & ThisWorkbook.Name & Chr(34) & _
             " " & Err.Source & vbTab & Err.Description
      ' Ouverture ou création du fichier texte d'erreur pour ajout de texte
      fNom = "Fichier_Erreurs.txt"
      fChem = ThisWorkbook.Path
      Open fChem & "\" & fNom For Append As #1
      Print #1, Msg   ' ajout de la nouvelle erreur
      Close #1        ' Ferme le fichier.
      ' voir pour imprimer le fichier si nécessaire
      '......
      ' fermeture du programme (SI NECESSAIRE)
      'ThisWorkbook.Close SaveChanges:=False
   End If

End Sub

------------- Résultat ----------------------
20131031-22:49:53 : l'erreur # 11 a été générée par le fichier Test indisponible.xlsm VBAProject Division par zéro
20131031-22:55:27 : l'erreur # 6 a été générée par le fichier "Test indisponible.xlsm" VBAProject Dépassement de capacité
 

Discussions similaires

Statistiques des forums

Discussions
312 398
Messages
2 088 075
Membres
103 707
dernier inscrit
amin Saadaoui