Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

6 réponses
Avatar
Roland Miller
Bonjour,

J'ai besoin de tester si un fichier d=C3=A9butant par XXX existe dans un r=
=C3=A9pertoire.

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:\Data\XLLet_LC1_2019-12-31.xls.

Alors avec la formule matricielle {=3DSI(fichierexiste(L7);"Oui";"Non")}=E2=
=80=A6 j'obtiens oui.

Mais j'aurais besoin de v=C3=A9rifier si un fichier d=C3=A9butant par =E2=
=80=A6 C:\Data\XLLet_LC1_ =E2=80=A6 donc avec les X premiers caract=C3=A8re=
s ou ??? existe.

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

Merci =C3=A0 l'avance.


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

FichierExiste =3D Dir(nomfich) <> ""

End Function

6 réponses

Avatar
Daniel.j
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
Avatar
Michel__D
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 ?
Avatar
Roland Miller
Un grand merci. Ça fonctionne parfaitement.
Avatar
Roland Miller
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.
Avatar
MichD
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
Avatar
MichD
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