enregistrement d'erreur vba sur fichier texte

fhoest

XLDnaute Accro
Bonjour à tous,
Comment fait on pour enregistrer sur un fichier texte par exemple les erreurs "bugg d'un code vba " avec le numéro de la ligne concerné ou recopie de cette ligne avec enregistrement du moment (date ,time),et pourquoi pas pousser plus loin le sub concerné
Merci d'avance.
 

job75

XLDnaute Barbatruc
Re : enregistrement d'erreur vba sur fichier texte

Bonsoir fohest,

A mon avis, faut demander à Bill de créer une méthode spéciale sur VBA.

Mais il l'a peut-être fait, je n'ai pas cherché...

PS : n'oublie pas que quand il y a bug on est en mode "Arrêt", aucune macro ne peut s'exécuter...

A+
 

job75

XLDnaute Barbatruc
Re : enregistrement d'erreur vba sur fichier texte

Re,

Pas besoin de demander à Bill :D

En mettant On Error Resume Next en début de macro il n'y aura plus d'arrêt.

L'objet Err et la méthode Raise permettent de savoir quel type d'erreur se produit. Aide VBA :

Lorsqu'une erreur d'exécution se produit, les propriétés de l'objet Err renferment d'une part des informations qui identifient distinctement l'erreur et d'autre part des informations permettant de gérer cette erreur. Pour générer une erreur d'exécution dans votre code, utilisez la méthode Raise.

A+
 

fhoest

XLDnaute Accro
Re : enregistrement d'erreur vba sur fichier texte

Merci job75,
mais je ne connais pas cette méthode mais un expert au boulot avec qui je n'ai plus de contact connaissait cette méthode d'enregistrement comment fesait il je ne sais pas avec un do event ou un truc du genre qui gère la surveillance d'un bugg comme le fait le on error resume next par exemple cette erreur est bien géré quelque part vu que vba a le moyen de renvoyer le numéro de cette erreur sur un msgbox.
j'aimerais trouver ce code car de temps a autres sur un fichier que j'ai créer ou j'ai beaucoup de manipulation différente j'ai de temps en temps des erreurs qui me font devoir stopper excel sans pouvoir entrer dans mon code au niveau de la ligne qui bugg,
c'est a dire que je travaille sur ce fichier en application.visible=false et le projet vb protéger donc je suis obliger de fermer excel en forçage et perd l'erreur de cette ligne.
merci pour ta réponse.
 

Softmama

XLDnaute Accro
Re : enregistrement d'erreur vba sur fichier texte

Bonsoir fhoest, job75,

Ci dessous une procédure qui écrit une ligne dans un journal d'erreur f:\logerreur.txt :

VB:
Sub EcrireJournalErreur(NumErr)
Dim Fs As Object, a As Object
Set Fs = CreateObject("Scripting.FileSystemObject")
'mettre cette ligne pour recréer le fichier à chaque fois :
'Set a = Fs.CreateTextFile("F:\logErreur.txt", True)

'ou cette ligne pour ajouter les entrées dans le fichier existant, à la suite :
Set a = Fs.OpenTextFile("F:\logErreur.txt", 8)
a.WriteLine ("Date :" & Now & " - Erreur : " & NumErr)
a.Close
End Sub

que tu peux appeler dans une procédure de gestion d'erreur à partir de n'importe quelle macro comme dans l'exemple ci-dessous :

VB:
Sub maMacro()
Dim a As Range
On Error GoTo 1
'Ton code susceptible de générer des erreurs :
Set a = a.taille 'ERREUR !
Exit Sub

1 EcrireJournalErreur (Err)
Err.Clear
End Sub
 
C

Compte Supprimé 979

Guest
Re : enregistrement d'erreur vba sur fichier texte

Salut Fhoest, Job75

Une Procédure que j'utilise dans mes bases Access, que l'on peut adapter facilement dans Excel

Dans mes procédures
Code:
Private Sub Form_Open(Cancel As Integer)
On Error GoTo Erreur_Proc
' Code de la procédure
 
' Code à la fin de la Procédure
Exit_Erreur:
  Exit Sub
Erreur_Proc:
  MsgBox Err.Number & " - " & Err.Description & vbCrLf & "Inscription dans fichier 'ErrorLog.txt'"
  LogError Err, Me.Name, "Sub Form_Open(Cancel As Integer)"
  Resume Exit_Erreur
End Sub

La procédure d'inscription des Erreurs dans le fichier Log
Code:
Sub LogError(errData As ErrObject, NomFrm As String, NomProc As String)
  ' Cette procédure consigne les erreurs dans un fichier texte. Elle est utilisée dans ce
  ' chapitre pour consigner des erreurs de synchronisation.
  '
  ' L'argument errData est une variable qui fait référence à l'objet
  ' Err de Visual Basic pour Applications.
  Dim intFileNum As Integer, CurPath As String
 
  intFileNum = FreeFile(0)
  CurPath = Application.CurrentProject.Path & "\"
  Open CurPath & "ErrorLog.txt" For Append As #intFileNum
  Write #intFileNum, Now
  Write #intFileNum, "Erreur : " & errData.Number
  Write #intFileNum, "Dans le formulaire : " & NomFrm & " - Procédure : " & NomProc
  Write #intFileNum, errData.Description
  Write #intFileNum,
  Close #intFileNum
End Sub

Si ça peut aider ;)

Edit : oups salut softmama, plus rapide :)

A+
 

fhoest

XLDnaute Accro
Re : enregistrement d'erreur vba sur fichier texte

bonsoir brunoM45,softmama,et job75
UN grand MERCI à vous trois,je savais que cela exister mais je ne connaissais pas la solution,cela va beaucoup m'aider pour corriger ces quelques buggs intempestifs ,il ne me reste plus qu'a appliquer ce code qui j'espère ne servira pas qu'a moi car je pense que sur certains projet cela est utile
Encore merci .
Mes respects:D messieurs
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 160
Messages
2 085 839
Membres
103 001
dernier inscrit
vivinator