[VB] Tester si un fichier existe

Aurnukem Messages postés 20 Date d'inscription lundi 16 février 2004 Statut Membre Dernière intervention 12 mars 2004 - 18 févr. 2004 à 13:28
Aurnukem Messages postés 20 Date d'inscription lundi 16 février 2004 Statut Membre Dernière intervention 12 mars 2004 - 18 févr. 2004 à 15:56
Bonjour je souhaiterais savoir si il existe un moyen de tester si un fichier excel existe dans mon repertoire. Car mon prog doit rentrer dans un dossier et ouvrir, en fonction de la date de depart et de fin, les fichiers excel. Mais le prob c que des fichiers n existent pas et donc le prog plante.

13 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
18 févr. 2004 à 13:47
il faut utiliser la fonction Dir : elle te renvoie le nom du fichier s'il existe, sinon, elle te renvoie une chaîne vide.

DarK Sidious

[Responsable de la rubrique API et responsable VB du site www.ProgOtoP.com]
0
BasicInstinct Messages postés 1470 Date d'inscription mardi 5 février 2002 Statut Membre Dernière intervention 20 octobre 2014 12
18 févr. 2004 à 14:24
tu peux aussi utiliser l'API PathFileExists

Declare Function PathFileExists Lib "shlwapi.dll" Alias "PathFileExistsA" (ByVal pszPath As String) As Long

renvoie VRAI si le fichier existe

l'api necessite IE4 ou +

@++

:clown) BasicInstinct :clown)
0
Aurnukem Messages postés 20 Date d'inscription lundi 16 février 2004 Statut Membre Dernière intervention 12 mars 2004
18 févr. 2004 à 14:43
Merci les gars, mais à vrai dire je ne sais plus trop quoi faire car j'ai rentré ce bout de code , mais ca merdouille, j'espere que vous pourrez m'aider.

Code :

Dim MonFichier As String
MonFichier = Dir("rapprt_D" & CLng(b) & "" & CLng(lireA) & "_T1*.xls")

If Dir(MonFichier, vbNormal) = "" Then
Call MsgBox ("Ce fichier n'existe pas !")
Else
Call MsgBox ("Ce Fichier existe !")
End If



Le probleme c'est que mon prog voit meme les fichiers qui n'existent et donc il me dit sans cesse Ce Fichier existe !
vbnormal est toujours à 0, meme quand les fichiers existent...
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
18 févr. 2004 à 14:47
Attention, il faut lui mentionner le répertoire du fichier complet !

Donne nous les valeurs des variables b et lireA pour voir stp.

Basic Instinct : Tiens, je ne la connaissait pas cette fonction ;-)

DarK Sidious

[Responsable de la rubrique API et responsable VB du site www.ProgOtoP.com]
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Aurnukem Messages postés 20 Date d'inscription lundi 16 février 2004 Statut Membre Dernière intervention 12 mars 2004
18 févr. 2004 à 14:55
alors b = 0 et lireA = 9032002

pour le chemin je lui indique juste avant :ChDrive "d:" et ChDir "\rapport\2002\S1"
et ensuite je lui balance
MonFichier = Dir("rapport_D" & CLng(b) & "" & CLng(lireA) & "_T1*.xls")

If Dir(MonFichier, vbNormal) = "" Then
Call MsgBox ("Ce fichier n'existe pas !")
Else
Call MsgBox ("Ce Fichier existe !")
End If
0
Aurnukem Messages postés 20 Date d'inscription lundi 16 février 2004 Statut Membre Dernière intervention 12 mars 2004
18 févr. 2004 à 15:08
je crois que j'ai peut être trouvé ma connerie :
j'utilise deux fois la fonction dir cette peut-être pour ça que ca marche pas :
Au lieu de mettre ça :

MonFichier = Dir("rapport_D" & CLng(b) & "" & CLng(lireA) & "_T1*.xls")

If Dir(MonFichier, vbNormal) = "" Then
....

Je devrai peut etre mettre:
MonFichier = "rapport_D" & CLng(b) & "" & CLng(lireA) & "_T1*.xls"

If Dir(MonFichier, vbNormal) = "" Then
qu'en pensez vous ?

Si par hazard c'est ça , il me faudrai un autre coup de main après, car si le fichier n'existe pas j'aimerais que le prog saute vers une ligne de programme au lieu de le continuer.
0
BasicInstinct Messages postés 1470 Date d'inscription mardi 5 février 2002 Statut Membre Dernière intervention 20 octobre 2014 12
18 févr. 2004 à 15:12
ben tu fais

If Dir(MonFichier, vbNormal) = "" Then goto FichierExistePas

et a l'endoit ou tu reprends tu mets

FichierExistePas:
.... code....

Mais c pas beau !!

:clown) BasicInstinct :clown)
0
Aurnukem Messages postés 20 Date d'inscription lundi 16 février 2004 Statut Membre Dernière intervention 12 mars 2004
18 févr. 2004 à 15:14
Merci pour vos réponses !!!

Mais pourquoi tu dis que c'est pas beau ?
0
BasicInstinct Messages postés 1470 Date d'inscription mardi 5 février 2002 Statut Membre Dernière intervention 20 octobre 2014 12
18 févr. 2004 à 15:18
parce que normalement tu utiliser des fonctions & procedures que tu appelles plutot que des sauts de lignes

@++

Dark: j'ai rajouté l'API sur progotop :)

:clown) BasicInstinct :clown)
0
Aurnukem Messages postés 20 Date d'inscription lundi 16 février 2004 Statut Membre Dernière intervention 12 mars 2004
18 févr. 2004 à 15:21
Et pour pour mon cas t'en aurais pas une sous la main de fonction équivalente ? SVP!!!!
0
BasicInstinct Messages postés 1470 Date d'inscription mardi 5 février 2002 Statut Membre Dernière intervention 20 octobre 2014 12
18 févr. 2004 à 15:27
ben ca depend totalement de ton algo :))

savoir si y'a du code en commun ...

ca peut etre :

if FileExists then
Proc1
else
proc2
endif
suite du code

ou

if FileExists then
Proc1
endif
suite du code (notament ta partie du goto...)

voir mm ptre pas de if si tu passes en parametre l'existance du fichier a une proc

:clown) BasicInstinct :clown)
0
Aurnukem Messages postés 20 Date d'inscription lundi 16 février 2004 Statut Membre Dernière intervention 12 mars 2004
18 févr. 2004 à 15:38
Mince y a un otre truc qui deconne avec mon code
il test les fichiers puis o bout d'un certain nombre il me les considère tous comme non-existant,et pourtant y sont bien present, vs avez une idée du prob ?

Pour memoire voici mon code

MonFichier = "rapport_D" & CLng(b) & "" & CLng(lireA) & "_T1*.xls"

If Dir(MonFichier, vbNormal) = "" Then
Call MsgBox ("Ce fichier n'existe pas !")
Else
Call MsgBox ("Ce Fichier existe !")
End If
0
Aurnukem Messages postés 20 Date d'inscription lundi 16 février 2004 Statut Membre Dernière intervention 12 mars 2004
18 févr. 2004 à 15:56
Si c'est bon maintenant, j'ai trouvé ma connerie (et oui encore une ^^) je lui indiquait un mauvai lien dans mes repertoires...

voila voila merci encore
0
Rejoignez-nous