bonjour à tous,
avec l'aide du groupe je me suis fait une petite macro qui me permet de
tester si le nom d'un fichier connu est contenu dans un répertoire qui en
contient une vingtaine .
j'ai crée la fonction suivante:
Public Function ExisteFichier(NomFichier As String) As Boolean
Dim FSO As Object, Dossier As Object, NomDossier
Dim Files As Object, File As Object
Set FSO = CreateObject("Scripting.FileSystemObject")
NomDossier = DataRepertoireFicheRex
Set Dossier = FSO.GetFolder(NomDossier)
Set Files = Dossier.Files
ExisteFichier = False
If Files.Count <> 0 Then
For Each File In Files
If File.Name = NomFichier Then
ExisteFichier = True
GoTo Etiq1
End If
Next
Etiq1: End If
End Function
A la maison, ayant un micro performant, le test de tous mes noms de fichier
prend au bas mot 10 secondes. au boulot cela prend 15 minutes.
existe il une solution pour améliorer ma fonction ? en effet pour chercher
s'il existe un fichier ayant le nom voulu je suis obligé de les tester un
par un
For Each File In Files
If File.Name = NomFichier Then
ExisteFichier = True
GoTo Etiq1
End If
Next
n'y aurait il pas un moyen pour lui demander, sans les tester un par un, si
mon fichier est contenu dans la liste ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
LSteph
Bonjour, Sur une execution selon tes ressources cela ne changera pas grand chose mais: A priori exit for serait mieux que goto etiq1 et remettre les variables objet à nothing serait pas mal si tu dois executer plusieurs fois.
lSteph
"Xavier POWAGA" a écrit dans le message de news: 43ddf93e$0$23235$
bonjour à tous, avec l'aide du groupe je me suis fait une petite macro qui me permet de tester si le nom d'un fichier connu est contenu dans un répertoire qui en contient une vingtaine .
j'ai crée la fonction suivante: Public Function ExisteFichier(NomFichier As String) As Boolean
Dim FSO As Object, Dossier As Object, NomDossier Dim Files As Object, File As Object
Set FSO = CreateObject("Scripting.FileSystemObject") NomDossier = DataRepertoireFicheRex Set Dossier = FSO.GetFolder(NomDossier) Set Files = Dossier.Files ExisteFichier = False If Files.Count <> 0 Then For Each File In Files If File.Name = NomFichier Then ExisteFichier = True GoTo Etiq1 End If Next Etiq1: End If
End Function
A la maison, ayant un micro performant, le test de tous mes noms de fichier prend au bas mot 10 secondes. au boulot cela prend 15 minutes. existe il une solution pour améliorer ma fonction ? en effet pour chercher s'il existe un fichier ayant le nom voulu je suis obligé de les tester un par un For Each File In Files If File.Name = NomFichier Then ExisteFichier = True GoTo Etiq1 End If Next n'y aurait il pas un moyen pour lui demander, sans les tester un par un, si mon fichier est contenu dans la liste ?
merci de vos idées
Bonjour,
Sur une execution selon tes ressources cela ne changera pas grand chose
mais:
A priori exit for serait mieux que goto etiq1
et remettre les variables objet à nothing serait pas mal
si tu dois executer plusieurs fois.
lSteph
"Xavier POWAGA" <xavierpowaga@free.fr> a écrit dans le message de news:
43ddf93e$0$23235$626a54ce@news.free.fr...
bonjour à tous,
avec l'aide du groupe je me suis fait une petite macro qui me permet de
tester si le nom d'un fichier connu est contenu dans un répertoire qui en
contient une vingtaine .
j'ai crée la fonction suivante:
Public Function ExisteFichier(NomFichier As String) As Boolean
Dim FSO As Object, Dossier As Object, NomDossier
Dim Files As Object, File As Object
Set FSO = CreateObject("Scripting.FileSystemObject")
NomDossier = DataRepertoireFicheRex
Set Dossier = FSO.GetFolder(NomDossier)
Set Files = Dossier.Files
ExisteFichier = False
If Files.Count <> 0 Then
For Each File In Files
If File.Name = NomFichier Then
ExisteFichier = True
GoTo Etiq1
End If
Next
Etiq1: End If
End Function
A la maison, ayant un micro performant, le test de tous mes noms de
fichier prend au bas mot 10 secondes. au boulot cela prend 15 minutes.
existe il une solution pour améliorer ma fonction ? en effet pour chercher
s'il existe un fichier ayant le nom voulu je suis obligé de les tester un
par un
For Each File In Files
If File.Name = NomFichier Then
ExisteFichier = True
GoTo Etiq1
End If
Next
n'y aurait il pas un moyen pour lui demander, sans les tester un par un,
si mon fichier est contenu dans la liste ?
Bonjour, Sur une execution selon tes ressources cela ne changera pas grand chose mais: A priori exit for serait mieux que goto etiq1 et remettre les variables objet à nothing serait pas mal si tu dois executer plusieurs fois.
lSteph
"Xavier POWAGA" a écrit dans le message de news: 43ddf93e$0$23235$
bonjour à tous, avec l'aide du groupe je me suis fait une petite macro qui me permet de tester si le nom d'un fichier connu est contenu dans un répertoire qui en contient une vingtaine .
j'ai crée la fonction suivante: Public Function ExisteFichier(NomFichier As String) As Boolean
Dim FSO As Object, Dossier As Object, NomDossier Dim Files As Object, File As Object
Set FSO = CreateObject("Scripting.FileSystemObject") NomDossier = DataRepertoireFicheRex Set Dossier = FSO.GetFolder(NomDossier) Set Files = Dossier.Files ExisteFichier = False If Files.Count <> 0 Then For Each File In Files If File.Name = NomFichier Then ExisteFichier = True GoTo Etiq1 End If Next Etiq1: End If
End Function
A la maison, ayant un micro performant, le test de tous mes noms de fichier prend au bas mot 10 secondes. au boulot cela prend 15 minutes. existe il une solution pour améliorer ma fonction ? en effet pour chercher s'il existe un fichier ayant le nom voulu je suis obligé de les tester un par un For Each File In Files If File.Name = NomFichier Then ExisteFichier = True GoTo Etiq1 End If Next n'y aurait il pas un moyen pour lui demander, sans les tester un par un, si mon fichier est contenu dans la liste ?
merci de vos idées
Michel Pierron
Bonjour Xavier; Utiliser FSO qui est très lent n'est pas nécessaire pour cette simple utilisation; pourquoi pas tout simplement la fonction Dir:
Function FileExist(FullFileName$, Optional FileOpen As Boolean = False) As Boolean FileExist = Len(Dir(FullFileName)) > 0 If Not FileExist Then GoTo 1 If FileOpen Then Workbooks.Open Fichier Exit Function 1: MsgBox "Fichier " & Fichier & " non trouvé !", 64 End Function
MP
"Xavier POWAGA" a écrit dans le message de news: 43ddf93e$0$23235$
bonjour à tous, avec l'aide du groupe je me suis fait une petite macro qui me permet de tester si le nom d'un fichier connu est contenu dans un répertoire qui en contient une vingtaine .
j'ai crée la fonction suivante: Public Function ExisteFichier(NomFichier As String) As Boolean
Dim FSO As Object, Dossier As Object, NomDossier Dim Files As Object, File As Object
Set FSO = CreateObject("Scripting.FileSystemObject") NomDossier = DataRepertoireFicheRex Set Dossier = FSO.GetFolder(NomDossier) Set Files = Dossier.Files ExisteFichier = False If Files.Count <> 0 Then For Each File In Files If File.Name = NomFichier Then ExisteFichier = True GoTo Etiq1 End If Next Etiq1: End If
End Function
A la maison, ayant un micro performant, le test de tous mes noms de fichier
prend au bas mot 10 secondes. au boulot cela prend 15 minutes. existe il une solution pour améliorer ma fonction ? en effet pour chercher s'il existe un fichier ayant le nom voulu je suis obligé de les tester un par un For Each File In Files If File.Name = NomFichier Then ExisteFichier = True GoTo Etiq1 End If Next n'y aurait il pas un moyen pour lui demander, sans les tester un par un, si
mon fichier est contenu dans la liste ?
merci de vos idées
Bonjour Xavier;
Utiliser FSO qui est très lent n'est pas nécessaire pour cette simple
utilisation; pourquoi pas tout simplement la fonction Dir:
Function FileExist(FullFileName$, Optional FileOpen As Boolean = False) As
Boolean
FileExist = Len(Dir(FullFileName)) > 0
If Not FileExist Then GoTo 1
If FileOpen Then Workbooks.Open Fichier
Exit Function
1: MsgBox "Fichier " & Fichier & " non trouvé !", 64
End Function
MP
"Xavier POWAGA" <xavierpowaga@free.fr> a écrit dans le message de news:
43ddf93e$0$23235$626a54ce@news.free.fr...
bonjour à tous,
avec l'aide du groupe je me suis fait une petite macro qui me permet de
tester si le nom d'un fichier connu est contenu dans un répertoire qui en
contient une vingtaine .
j'ai crée la fonction suivante:
Public Function ExisteFichier(NomFichier As String) As Boolean
Dim FSO As Object, Dossier As Object, NomDossier
Dim Files As Object, File As Object
Set FSO = CreateObject("Scripting.FileSystemObject")
NomDossier = DataRepertoireFicheRex
Set Dossier = FSO.GetFolder(NomDossier)
Set Files = Dossier.Files
ExisteFichier = False
If Files.Count <> 0 Then
For Each File In Files
If File.Name = NomFichier Then
ExisteFichier = True
GoTo Etiq1
End If
Next
Etiq1: End If
End Function
A la maison, ayant un micro performant, le test de tous mes noms de
fichier
prend au bas mot 10 secondes. au boulot cela prend 15 minutes.
existe il une solution pour améliorer ma fonction ? en effet pour chercher
s'il existe un fichier ayant le nom voulu je suis obligé de les tester un
par un
For Each File In Files
If File.Name = NomFichier Then
ExisteFichier = True
GoTo Etiq1
End If
Next
n'y aurait il pas un moyen pour lui demander, sans les tester un par un,
si
Bonjour Xavier; Utiliser FSO qui est très lent n'est pas nécessaire pour cette simple utilisation; pourquoi pas tout simplement la fonction Dir:
Function FileExist(FullFileName$, Optional FileOpen As Boolean = False) As Boolean FileExist = Len(Dir(FullFileName)) > 0 If Not FileExist Then GoTo 1 If FileOpen Then Workbooks.Open Fichier Exit Function 1: MsgBox "Fichier " & Fichier & " non trouvé !", 64 End Function
MP
"Xavier POWAGA" a écrit dans le message de news: 43ddf93e$0$23235$
bonjour à tous, avec l'aide du groupe je me suis fait une petite macro qui me permet de tester si le nom d'un fichier connu est contenu dans un répertoire qui en contient une vingtaine .
j'ai crée la fonction suivante: Public Function ExisteFichier(NomFichier As String) As Boolean
Dim FSO As Object, Dossier As Object, NomDossier Dim Files As Object, File As Object
Set FSO = CreateObject("Scripting.FileSystemObject") NomDossier = DataRepertoireFicheRex Set Dossier = FSO.GetFolder(NomDossier) Set Files = Dossier.Files ExisteFichier = False If Files.Count <> 0 Then For Each File In Files If File.Name = NomFichier Then ExisteFichier = True GoTo Etiq1 End If Next Etiq1: End If
End Function
A la maison, ayant un micro performant, le test de tous mes noms de fichier
prend au bas mot 10 secondes. au boulot cela prend 15 minutes. existe il une solution pour améliorer ma fonction ? en effet pour chercher s'il existe un fichier ayant le nom voulu je suis obligé de les tester un par un For Each File In Files If File.Name = NomFichier Then ExisteFichier = True GoTo Etiq1 End If Next n'y aurait il pas un moyen pour lui demander, sans les tester un par un, si
mon fichier est contenu dans la liste ?
merci de vos idées
Xavier POWAGA
merci les gars, j'ai pris en compte vos remarques et maintenant ça marche du feu de dieu
xavier "Michel Pierron" a écrit dans le message de news:
Bonjour Xavier; Utiliser FSO qui est très lent n'est pas nécessaire pour cette simple utilisation; pourquoi pas tout simplement la fonction Dir:
Function FileExist(FullFileName$, Optional FileOpen As Boolean = False) As Boolean FileExist = Len(Dir(FullFileName)) > 0 If Not FileExist Then GoTo 1 If FileOpen Then Workbooks.Open Fichier Exit Function 1: MsgBox "Fichier " & Fichier & " non trouvé !", 64 End Function
MP
"Xavier POWAGA" a écrit dans le message de news: 43ddf93e$0$23235$
bonjour à tous, avec l'aide du groupe je me suis fait une petite macro qui me permet de tester si le nom d'un fichier connu est contenu dans un répertoire qui en contient une vingtaine .
j'ai crée la fonction suivante: Public Function ExisteFichier(NomFichier As String) As Boolean
Dim FSO As Object, Dossier As Object, NomDossier Dim Files As Object, File As Object
Set FSO = CreateObject("Scripting.FileSystemObject") NomDossier = DataRepertoireFicheRex Set Dossier = FSO.GetFolder(NomDossier) Set Files = Dossier.Files ExisteFichier = False If Files.Count <> 0 Then For Each File In Files If File.Name = NomFichier Then ExisteFichier = True GoTo Etiq1 End If Next Etiq1: End If
End Function
A la maison, ayant un micro performant, le test de tous mes noms de fichier
prend au bas mot 10 secondes. au boulot cela prend 15 minutes. existe il une solution pour améliorer ma fonction ? en effet pour chercher s'il existe un fichier ayant le nom voulu je suis obligé de les tester un par un For Each File In Files If File.Name = NomFichier Then ExisteFichier = True GoTo Etiq1 End If Next n'y aurait il pas un moyen pour lui demander, sans les tester un par un, si
mon fichier est contenu dans la liste ?
merci de vos idées
merci les gars, j'ai pris en compte vos remarques et maintenant ça marche du
feu de dieu
xavier
"Michel Pierron" <michel.pierron@free.fr> a écrit dans le message de news:
OhmGrWZJGHA.2900@TK2MSFTNGP14.phx.gbl...
Bonjour Xavier;
Utiliser FSO qui est très lent n'est pas nécessaire pour cette simple
utilisation; pourquoi pas tout simplement la fonction Dir:
Function FileExist(FullFileName$, Optional FileOpen As Boolean = False) As
Boolean
FileExist = Len(Dir(FullFileName)) > 0
If Not FileExist Then GoTo 1
If FileOpen Then Workbooks.Open Fichier
Exit Function
1: MsgBox "Fichier " & Fichier & " non trouvé !", 64
End Function
MP
"Xavier POWAGA" <xavierpowaga@free.fr> a écrit dans le message de news:
43ddf93e$0$23235$626a54ce@news.free.fr...
bonjour à tous,
avec l'aide du groupe je me suis fait une petite macro qui me permet de
tester si le nom d'un fichier connu est contenu dans un répertoire qui en
contient une vingtaine .
j'ai crée la fonction suivante:
Public Function ExisteFichier(NomFichier As String) As Boolean
Dim FSO As Object, Dossier As Object, NomDossier
Dim Files As Object, File As Object
Set FSO = CreateObject("Scripting.FileSystemObject")
NomDossier = DataRepertoireFicheRex
Set Dossier = FSO.GetFolder(NomDossier)
Set Files = Dossier.Files
ExisteFichier = False
If Files.Count <> 0 Then
For Each File In Files
If File.Name = NomFichier Then
ExisteFichier = True
GoTo Etiq1
End If
Next
Etiq1: End If
End Function
A la maison, ayant un micro performant, le test de tous mes noms de
fichier
prend au bas mot 10 secondes. au boulot cela prend 15 minutes.
existe il une solution pour améliorer ma fonction ? en effet pour
chercher
s'il existe un fichier ayant le nom voulu je suis obligé de les tester un
par un
For Each File In Files
If File.Name = NomFichier Then
ExisteFichier = True
GoTo Etiq1
End If
Next
n'y aurait il pas un moyen pour lui demander, sans les tester un par un,
si
merci les gars, j'ai pris en compte vos remarques et maintenant ça marche du feu de dieu
xavier "Michel Pierron" a écrit dans le message de news:
Bonjour Xavier; Utiliser FSO qui est très lent n'est pas nécessaire pour cette simple utilisation; pourquoi pas tout simplement la fonction Dir:
Function FileExist(FullFileName$, Optional FileOpen As Boolean = False) As Boolean FileExist = Len(Dir(FullFileName)) > 0 If Not FileExist Then GoTo 1 If FileOpen Then Workbooks.Open Fichier Exit Function 1: MsgBox "Fichier " & Fichier & " non trouvé !", 64 End Function
MP
"Xavier POWAGA" a écrit dans le message de news: 43ddf93e$0$23235$
bonjour à tous, avec l'aide du groupe je me suis fait une petite macro qui me permet de tester si le nom d'un fichier connu est contenu dans un répertoire qui en contient une vingtaine .
j'ai crée la fonction suivante: Public Function ExisteFichier(NomFichier As String) As Boolean
Dim FSO As Object, Dossier As Object, NomDossier Dim Files As Object, File As Object
Set FSO = CreateObject("Scripting.FileSystemObject") NomDossier = DataRepertoireFicheRex Set Dossier = FSO.GetFolder(NomDossier) Set Files = Dossier.Files ExisteFichier = False If Files.Count <> 0 Then For Each File In Files If File.Name = NomFichier Then ExisteFichier = True GoTo Etiq1 End If Next Etiq1: End If
End Function
A la maison, ayant un micro performant, le test de tous mes noms de fichier
prend au bas mot 10 secondes. au boulot cela prend 15 minutes. existe il une solution pour améliorer ma fonction ? en effet pour chercher s'il existe un fichier ayant le nom voulu je suis obligé de les tester un par un For Each File In Files If File.Name = NomFichier Then ExisteFichier = True GoTo Etiq1 End If Next n'y aurait il pas un moyen pour lui demander, sans les tester un par un, si