Excel VBA : vérifier l'existence de fichiers (Vrai / Faux)
Bonjour à tous,
Dans le cadre de mon projet de fin d'études, je dois réaliser un fichier Excel. Je cherche à vouloir lister un ensemble de fichiers et savoir s'ils sont présents ou non dans des dossiers / sous dossiers.
Donc dans une colonne j'ai la liste de mes noms de fichiers et dans la colonne suivante je veux faire : VRAI le fichier existe, FAUX le fichier n'existe pas. Pour ensuite pouvoir filtrer tous les fichiers qu'il me manque.
J'ai donc cherché sur internet des tutos par rapport au Macro et VBA et donc j'ai trouvé cette fonction :
Function testFichier(fichier As String) As Boolean
If Len(Dir(fichier)) > 0 Then
testFichier = True
Else
testFichier = False
End If
End Function
Sub test()
MsgBox testFichier(ActiveWorkbook.Path & "\test.pdf")
End Sub Plusieurs questions : la première : ce code marche une première fois mais problème lorsque j'enregistre, que je ferme et que je rouvre mon doc Excel ça me met FAUX dans ma cellule où c'était VRAI avant que je ferme le fichier Excel alors que le fichier existe toujours. Et ça vraiment je ne comprends, j'ai cherché partout sur internet, impossible de résoudre le problème. Je précise que j'ai bien autorisé tout type de macro sur excel, ce n'est pas un problème de sécurité. Je suis bien en fichier .xlsm. J'ai également bien tapé le code dans un module dans le visual basic.
En cherchant une solution, j'ai trouvé un autre code sur internet qui me permet de faire la même chose. Et j'ai rencontré également exactement la même difficulté : je vous le mets ci-dessous :
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 FunctionVoilà mon principal problème. J'imagine qu'une solution doit bien exister, s'il y en a qui peuvent me venir en aide, je vous en serai très reconnaissant.
J'en profite pour évoquer également d'autres interrogations que j'ai :
Avec le deuxième code que j'ai mis je crois que je n'ai pas besoin de recréer un module pour chaque fichier à rechercher contrairement au premier. Est ce que j'ai bien compris ? Le deuxième code - si j'arrive à résoudre mon premier problème - semble plus pratique donc ?
Dernière question, avec les deux codes pour l'instant, je ne peux rechercher que des fichiers dans le même dossier que où est placé mon fichier Excel. Peut-on chercher des fichiers dans d'autres dossiers ? Je précise que j'ai essayé dans le premier code en rentrant l'adresse d'un dossier à la place de
"\test.pdf"mais ça ne fonctionne pas. Peut être est-ce lié à mon premier problème.
Je vous remercie du temps que pourrez -m'accorder à élucider ces soucis.
Poloo
Bonjour Poloo,
Regarde ceci : https://forum.excel-pratique.com/excel/coller-des-donnees-apres-la-derniere-cellule-non-vide-115209#...
Tu pourrais y trouver ton bonheur.
Bizz
Bonjour,
Mon fichier permet de récupérer la liste des fichiers ou la liste des sous-répertoires présents à l'endroit ou ce fichier est enregistré.
Si vous ajoutez votre liste de fichier à contrôler en colonne C ; vous obtiendrez vos "Vrai" , "Faux" en colonne D.
@Xmenpl un grand merci pour ton fichier, je crois qu'il va beaucoup m'aider.
Une très bonne soirée,
Poloo