Vérifier l'existence d'un fichier et mettre vrai ou faux une cellule

bonjour,

je souhaiterais faire ceci :

dans une colonne le nom d'un fichier et dans une autre je souhaiterais mettre le résultat VRAI ou FAUX.

est ce que quelqu'un pourrais m'aider à commencer.

Merci d'avance pour votre aide

Bonjour Profundone,

Je propose une fonction VBA:

Function IsFileExists(zFileName As String) As String
    Dim oFS As Object

    Set oFS = CreateObject("Scripting.FileSystemObject")

    If oFS.Fileexists(zFileName) Then
        IsFileExists = "VRAI"
    Else
        IsFileExists = "FAUX"
    End If

    Set oFS = Nothing
End Function

en indiquant dans les cellules devant recevoir "VRAI/FAUX" la formule "=IsFileExists(A1)" où A1 contient le nom du fichier (et son chemin complet, bien sûr...)

merci Gerard ça fonctionne.

je souhaiterais traiter tout une colonne

ensuite j'aimerais lire les fichiers texte s'il trouve "Volume C: [OSDisk]" il met "Déploiement OK" et s'il trouve "code 0x80070057" il met "correctif à appliquer"

Bonsoir profunde,

Peux-tu fournir un exemple de classeur et de 2 fichiers contenant l"un de texte "code 0x80070057" l'autre le texte "Volume C: [OSDisk]"?

voila un exemple de fichier

colonne déploiement ok = je vérifier si le fichier de la colonne A existe je met OK ou NOK si le fichier n'existe pas

nom du fichier = A1 & .txt

colonne correctif à appliquer = je vérifier si le fichier existe, je lis dans le fichier et si je trouve ERREUR je met OK sinon NOK

merci d'avance pour ton aide

113test.xlsm (9.65 Ko)
37czc4343tlk.txt (396.00 Octets)
26czc4431bs4.txt (440.00 Octets)

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.

107test-gvs.xlsm (18.99 Ko)

c'est parfait, je l'ai adapter

merci beaucoup

Wahou, excellent !!

au passage une fonction plus simple pour tester l'existence d'un fichier sans utiliser Scripting.FileSystemObject

Function isFileExists(NomFichierComplet As String) As Boolean
    isFileExists = Len(Dir(NomFichierComplet)) > 0
End Function
Rechercher des sujets similaires à "verifier existence fichier mettre vrai faux"