VBA: Vérifier si le fichier existe 3


En VBA, il est très simple de vérifier si un fichier existe. On peut utiliser une combinaison de deux fonctions VBA:   Len() et Dir().

La fonction Dir() retourne le nom du fichier testé si ce fichier existe (en tant qu'une chaîne de caractères – String). Si le fichier n'existe pas, la fonction retourne une chaîne vide.

On va ensuite tester avec la fonction Len() la longueur de ce résultat obtenu. La fonction Len() retourne comme résultat le nombre de caractères dans une chaîne de caractères. Dans notre cas, la conclusion est la suivante: si le résultat combiné de ces deux fonctions est  >0, le ficher existe. Dans le cas contraire, le fichier testé n'existe pas.

Et voici le code VBA qu'il vous faudra pour vérifier si le fichier existe ou pas…

Fonction VBA pour tester l’existence d’un fichier

La fonction suivante utilise un paramètre (de type String): le chemin complet vers le fichier.

Le résultat retourné par cette fonction correspond à une des valeurs suivantes: True (si le fichier existe) ou False (si le fichier n'existe pas).

Public Function FichierExiste(MonFichier as String)
'par Excel-Malin.com ( http://excel-malin.com )

   If Len(Dir(MonFichier)) > 0 Then
      FichierExiste = True
   Else
      FichierExiste = False
   End If
End Function

 

Exemple de vérification de l’existence d’un fichier

Le code VBA qui suit illustre l'utilisation de la fonction FichierExiste dont le code se trouve plus haut.

Sub TesteSiFichierExiste()
'par Excel-Malin.com ( http://excel-malin.com )

Dim MonFichier As String

MonFichier = "C:\Dossier_test\fichier_test.docx"

    If FichierExiste(MonFichier) = True Then
        MsgBox "Le fichier existe..."
    Else
        MsgBox "Le fichier n'existe pas..."
    End If

End Sub

 

Pour aller plus loin

Vous venez de voir le code qui vous permettra de tester en VBA l'existence d'un fichier. Il est également possible de tester en VBA si un dossier existe.

 

32 0




Laissez un commentaire

Votre adresse de messagerie ne sera pas publiée.

3 commentaires sur “VBA: Vérifier si le fichier existe

  • Marc

    J'utilise ce code depuis quelques mois et je vous en remercie.
    Aujourd'hui, je n'arrive pas à l'appliquer à un nouveau fichier et je ne vois ce qui cloche.

    J'ai ce message :
    "Erreur d'exécution '52:
    Nom ou numéro de fichier incorrect"

    Et dans mon Module, cette ligne est surlignée en mode débogage :
    " If Len(Dir(MonFichier)) > 0 Then"

    Avez-vous déjà rencontré le problème ?

    Voilà le code de ma macro où MonFichier est utilisé :
    "Dim MonFichier As String
    MonFichier = CHEMIN_BILAN_A
    If FichierExiste(MonFichier) = False Then
    MsgBox "Accès au fichier impossible." & vbCr & "Veuillez vérifier l'existence du fichier et la justesse de son chemin d'accès : " & vbCr & vbCr & CHEMIN_BILAN_A, vbOKOnly + vbExclamation, "ANOMALIE DÉTECTÉE"
    Else
    If FichOuvert(BILAN_A) Then
    ' Ne rien faire
    Else
    Workbooks.Open Filename:= _
    CHEMIN_BILAN_A _
    , UpdateLinks:=3, ReadOnly:=True
    ActiveWindow.Visible = False
    End If
    End If