Bonjour Profundone,
Nouvelle version du code VBA :
Option Explicit
Const cFileExistsValue = "OK"
Const cFileDontExistsValue = "NOK"
Const cErrorInFileValue = "Oui"
Const cNoErrorInFileValue = "Non"
Const cErreur = "code 0x80070057"
Const cBlank = ""
Function IsFileExists(zFileName As String) As String
Dim sPath As String, sFilename As String
Dim oFS As Object
sPath = ThisWorkbook.Path
sFilename = sPath & "\" & zFileName & ".txt"
Set oFS = CreateObject("Scripting.FileSystemObject")
If oFS.Fileexists(sFilename) Then
IsFileExists = cFileExistsValue
Else
IsFileExists = cFileDontExistsValue
End If
Set oFS = Nothing
End Function
Function IsErrorInFile(zFileExists As Variant, zFileName As String) As String
Dim sPath As String, sFilename As String
Dim sBuffer As String, lPos As Long, i As Integer
Select Case zFileExists
Case Is = cFileExistsValue
'Si fichier existe alors on traite
sPath = ThisWorkbook.Path
sFilename = sPath & "\" & zFileName & ".txt"
'On ouvre le fichier
Open sFilename For Input As #1
'On lit le 4ème enregistrement du fichier
For i = 1 To 4
Line Input #1, sBuffer
Next
'On ferme le fichier
Close #1
'on recherche 'ERREUR' dans le buffer
lPos = InStr(1, sBuffer, cErreur)
If lPos > 0 Then
'On a trouvé ERREUR
IsErrorInFile = cErrorInFileValue
Else
IsErrorInFile = cNoErrorInFileValue
End If
Case Is = cFileDontExistsValue
'Si le fichier n'existe pas, on renvoie une chaîne vide
IsErrorInFile = cBlank
Case Else
'Si l'existence du fichier n'a pas été testée, on renvoie une chaîne vide
IsErrorInFile = cBlank
End Select
End Function
et en P.J. ton classeur mis à jour.
NB: J'ai considéré que les fichiers texte étaient stockés dans le même dossier que le classeur. Sinon il faut que tu modifie l'affection de sPath dans les 2 fonctions.