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

liste des fichiers SI un fichier est présent dans un repertoire

5 réponses
Avatar
Alfred WALLACE
Bonjour =E0 tous les gurus et bonne ann=E9e 2009 !!


j'aimerai r=E9cup=E9rer dans une feuille
la liste des fichiers qui se trouvent dans un sous-dossier /donnees/.

Puis, par la suite,
si dans ce sous-dossier /donnees/ il existe un fichier maj.txt
j'aimerai effacer maj.txt et r=E9cuperer la liste comme pr=E9c=E9dement.


Pourriez vous m'=E9clairer sur la m=E9thode =E0 suivre ou un chtit
exemple ?

Merci pour votre aide.

jos=E9

5 réponses

Avatar
michdenis
Dim Chemin As String
Dim Fichier As String

Chemin = "c:CheminoùEstTonFichier"
Fichier = "maj.txt"

if dir(chemin & fichier) <>"" then
Kill chemin & fichier
end if

la suppression sera définitive... et non dans la poubelle.



"Alfred WALLACE" a écrit dans le message de groupe de discussion :

Bonjour à tous les gurus et bonne année 2009 !!


j'aimerai récupérer dans une feuille
la liste des fichiers qui se trouvent dans un sous-dossier /donnees/.

Puis, par la suite,
si dans ce sous-dossier /donnees/ il existe un fichier maj.txt
j'aimerai effacer maj.txt et récuperer la liste comme précédement.


Pourriez vous m'éclairer sur la méthode à suivre ou un chtit
exemple ?

Merci pour votre aide.

josé
Avatar
FFO
Salut à toi

Quelque chose comme ceci :

With Application.FileSearch
.LookIn = "C:Chemindonnees"
.FileType = msoFileTypeAllFiles
.Execute
End With
With Application.FileSearch
For I = 1 To .FoundFiles.Count
If Mid(.FoundFiles(I), Len(.LookIn) + 2) <> "maj.txt" Then
ActiveSheet.Range("A65535").End(xlUp).Offset(1, 0) = Mid(.FoundFiles(I),
Len(.LookIn) + 2)
End If
Next I

Résultat dans la feuille active en colonne A

Celà devrait convenir
Dis moi !!!!
Avatar
Alfred WALLACE
Salut à toi ,

j'ai ré-écris ton code :

Sub test()

With Application.FileSearch
.LookIn = "C:Chemindonnees" <<--- comment lui dire "répertoire dans
lequel est le fichier excel ?
.FileType = msoFileTypeAllFiles
.Execute
End With

With Application.FileSearch
For I = 1 To .FoundFiles.Count
If Mid(.FoundFiles(I), Len(.LookIn) + 2) <> "maj.txt" Then

ActiveSheet.Range("A65535").End(xlUp).Offset(1, 0) = _
Mid(.FoundFiles(I), Len(.LookIn) + 2)

End If
Next I
End With
End Sub

ton code va récupérer dans tous les cas l'ensemble des entrées du
répertoire concerné ?
comment je lui dis de rechercher dans le "répertoire courant" ?

est-ce que le code "+2" est due aux entrée "./" et "../" ?

en gros, la boucle inscrit dans les cellules tous les fichiers de la
"collection" (si c'est
bien comme celà que celà ce nomme) .FileSearch SAUF lorsque
l'on se trouve sur "maj.txt" ??

En fait, celà fonctionne très bien, je me modifierai
pour qu'il ne s'éxécute que si le fichier maj.txt existe dans le
repertoire


MERCI beaucoup !!!!
José

FFO a écrit :
Salut à toi

Quelque chose comme ceci :

With Application.FileSearch
.LookIn = "C:Chemindonnees"
.FileType = msoFileTypeAllFiles
.Execute
End With
With Application.FileSearch
For I = 1 To .FoundFiles.Count
If Mid(.FoundFiles(I), Len(.LookIn) + 2) <> "maj.txt" Then
ActiveSheet.Range("A65535").End(xlUp).Offset(1, 0) = Mid(.FoundFiles(I) ,
Len(.LookIn) + 2)
End If
Next I

Résultat dans la feuille active en colonne A

Celà devrait convenir
Dis moi !!!!


Avatar
Alfred WALLACE
Je me répond à moi-même (le preuve que je cherche ...)

j'ai fait çà : .LookIn = ActiveWorkbook.Path

çà à l'air de marcher !

Merci encore à FFO et michdenis

José



On 28 jan, 16:12, Alfred WALLACE wrote:
Salut à toi ,

j'ai ré-écris ton code :

Sub test()

With Application.FileSearch
.LookIn = "C:Chemindonnees"  <<--- comment lui dire "répertoire d ans
lequel est le fichier excel ?
.FileType = msoFileTypeAllFiles
.Execute
End With

With Application.FileSearch
For I = 1 To .FoundFiles.Count
If Mid(.FoundFiles(I), Len(.LookIn) + 2) <> "maj.txt" Then

ActiveSheet.Range("A65535").End(xlUp).Offset(1, 0) = _
Mid(.FoundFiles(I), Len(.LookIn) + 2)

End If
Next I
End With
End Sub

ton code va récupérer dans tous les cas l'ensemble des entrées du
répertoire concerné ?
comment je lui dis de rechercher dans le "répertoire courant" ?

est-ce que le code "+2" est due aux entrée "./"  et "../" ?

en gros, la boucle inscrit dans les cellules tous les fichiers de la
"collection" (si c'est
bien comme celà que celà ce nomme) .FileSearch  SAUF lorsque
l'on se trouve sur "maj.txt" ??

En fait, celà fonctionne très bien, je me modifierai
pour qu'il ne s'éxécute que si le fichier maj.txt existe dans le
repertoire

MERCI beaucoup !!!!
José

FFO a écrit :

> Salut à toi

> Quelque chose comme ceci :

>  With Application.FileSearch
> .LookIn = "C:Chemindonnees"
> .FileType = msoFileTypeAllFiles
> .Execute
> End With
> With Application.FileSearch
> For I = 1 To .FoundFiles.Count
> If Mid(.FoundFiles(I), Len(.LookIn) + 2) <> "maj.txt" Then
> ActiveSheet.Range("A65535").End(xlUp).Offset(1, 0) = Mid(.FoundFiles( I),
> Len(.LookIn) + 2)
> End If
> Next I

> Résultat dans la feuille active en colonne A

> Celà devrait convenir
> Dis moi !!!!


Avatar
FFO
Rebonjour à toi

.LookIn = "C:Chemindonnees" <<--- comment lui dire "répertoire dans
lequel est le fichier excel ?

Tu mets :

.LookIn = ThisWorkBook.Path

"ton code va récupérer dans tous les cas l'ensemble des entrées du
répertoire concerné ? "

Le code liste tous les fichiers du répertoire déterminé par .LookIn

"est-ce que le code "+2" est due aux entrée "./" et "../" ?"

Dans l'instruction :

Mid(.FoundFiles(I), Len(.LookIn) + 2)

Je cherche à récupérer le nom du fichier présent dans la partie .FoundFiles(I)
Pour celà de .FoundFiles(I) je n'extrais qu'à partir de Len(.LookIn) qui
représente le nombre de caractère du chemin du répertoire auquel je rajoute 2
pour démarrer l'extraction 2 caractères aprés (1° caractère "" et 2°
caractère la 1° lettre du nom du fichier)

"en gros, la boucle inscrit dans les cellules tous les fichiers de la
"collection" (si c'est
bien comme celà que celà ce nomme) .FileSearch SAUF lorsque
l'on se trouve sur "maj.txt" ?? "

Gagné !!!!

Je dirais plutôt tous les fichiers du répertoire déterminé par .LookIn

Espérant avoir répondu à tes interrogations