Si fichier existe ... selon les X premiers caractères

Le
Roland Miller
Bonjour,

J'ai besoin de tester si un fichier débutant par XXX existe dans un r=
épertoire.

J'ai une fonction comme ci-dessous.

Le chemin et le nom du fichier dont dans la cellule L7. Dison que le chemin=
est C:DataXLLet_LC1_2019-12-31.xls.

Alors avec la formule matricielle {=SI(fichierexiste(L7);"Oui";"Non")}=
j'obtiens oui.

Mais j'aurais besoin de vérifier si un fichier débutant par =
C:DataXLLet_LC1_ … donc avec les X premiers caractère=
s ou ??? existe.

Cela serait-il possible en modifiant la formule et/ou la fonction?

Merci à l'avance.


'*******************************************************************
Function FichierExiste(nomfich As String) As Boolean

FichierExiste = Dir(nomfich) <> ""

End Function
  • Partager ce contenu :
Vos réponses
Trier par : date / pertinence
Daniel.j
Le #26537550
Le 06/02/2020 à 06:10, Roland Miller a écrit :
Bonjour,
J'ai besoin de tester si un fichier débutant par XXX existe dans un répertoire.
J'ai une fonction comme ci-dessous.
Le chemin et le nom du fichier dont dans la cellule L7. Dison que le chemin est C:DataXLLet_LC1_2019-12-31.xls.
Alors avec la formule matricielle {=SI(fichierexiste(L7);"Oui";"Non")}… j'obtiens oui.
Mais j'aurais besoin de vérifier si un fichier débutant par … C:DataXLLet_LC1_ … donc avec les X premiers caractères ou ??? existe.
Cela serait-il possible en modifiant la formule et/ou la fonction?
Merci à l'avance.
'*******************************************************************
Function FichierExiste(nomfich As String) As Boolean
FichierExiste = Dir(nomfich) <> ""
End Function

BOnjour
Il suffit d'ajouter le caractère générique " * " à la suite
C:DataXLLet_LC1_*
Daniel
http://dj.joss.free.fr/fichier.htm
Michel__D
Le #26537567
Bonjour,
Le 06/02/2020 à 08:35, Daniel.j a écrit :
Le 06/02/2020 à 06:10, Roland Miller a écrit :
Bonjour,
J'ai besoin de tester si un fichier débutant par XXX existe dans un répertoire.
J'ai une fonction comme ci-dessous.
Le chemin et le nom du fichier dont dans la cellule L7. Dison que le chemin est
C:DataXLLet_LC1_2019-12-31.xls.
Alors avec la formule matricielle {=SI(fichierexiste(L7);"Oui";"Non")}… j'obtiens oui.
Mais j'aurais besoin de vérifier si un fichier débutant par … C:DataXLLet_LC1_ … donc avec les
X premiers caractères ou ??? existe.
Cela serait-il possible en modifiant la formule et/ou la fonction?
Merci à l'avance.
'*******************************************************************
Function FichierExiste(nomfich As String) As Boolean
FichierExiste = Dir(nomfich) <> ""
End Function

BOnjour
Il suffit d'ajouter le caractère générique  " * "  à la suite
 C:DataXLLet_LC1_*


Sans modifier la formule matricielle ?
Roland Miller
Le #26537571
Un grand merci. Ça fonctionne parfaitement.
Roland Miller
Le #26537572
Bonjour à nouveau,
Une petite précision cependant.
J'ao noté que ça ne fait pas de différence que ce soit ou no n une formule matricielle.
Mais que ce le soit ou non … le résultat de la formule ne se m et pas à jour automatiquement … à moins que vous puissiez me procurer un petit truc.
Car je fais le test d'aller modifier le nom du fichier dans le réperto ire … et … le résultat ne change pas … à moins que j'entre dans la cellule qui contient la formule et que je fasse e n Enter. Ce qui est peut-être normal?
Mais … si je lance par exemple ActiveSheet.Calculate … oui ça se met à jour.
MichD
Le #26537585
Le 06/02/20 à 12:43, Roland Miller a écrit :
Bonjour à nouveau,
Une petite précision cependant.
J'ao noté que ça ne fait pas de différence que ce soit ou non une formule matricielle.
Mais que ce le soit ou non … le résultat de la formule ne se met pas à jour automatiquement … à moins que vous puissiez me procurer un petit truc.
Car je fais le test d'aller modifier le nom du fichier dans le répertoire … et … le résultat ne change pas … à moins que j'entre dans la cellule qui contient la formule et que je fasse en Enter. Ce qui est peut-être normal?
Mais … si je lance par exemple ActiveSheet.Calculate … oui ça se met à jour.


Bonjour,
Modifie ta fonction personnalisée comme ceci :
'-------------------
Function FichierExiste(nomfich As String) As Boolean
Application.Volatile
FichierExiste = Dir(nomfich) <> ""
End Function
'-------------------
Une autre manière d'écrire la fonction serait :
Suppose que dans la cellule A1, tu as le chemin et le nom du fichier que
tu désires : Exemple : e:TéléchargementsCla* (Recherche un nom de
fichier débutant par cla dans le répertoire e:téléchargements
Tu pourrais ta fonction comme ceci :
'------------------------------
Function FichierExiste(Cel As Range) As Boolean
FichierExiste = Dir(Cel.Value) <> ""
End Function
'------------------------------
La fonction se met à jour dès que tu modifies le contenu de la cellule A1
MichD
MichD
Le #26537635
Tu pourrais ta fonction comme ceci :
'------------------------------
Function FichierExiste(Cel As Range) As Boolean
FichierExiste = Dir(Cel.Value) <> ""
End Function
'------------------------------
La fonction se met à jour dès que tu modifies le contenu de la cellule A1


Si tu décides d'utiliser cette fonction, dans la cellule recevant le
résultat, tu dois écrire : =FichierExiste(A1) A1 étant la cellule
contenant le chemin et le début du fichier.
MichD
Poster une réponse
Anonyme