OVH Cloud OVH Cloud

nom de fichier et excel

4 réponses
Avatar
stef b
Bonjour
j ai un repertoire nommé "FACTURE" sous c:\

je voudrais qu'en tapant un mot an range("A1")

il me supprime tous les repertoires contenant ce mot.

exemple :

5487 stefane tutesvu
5488 stefane quandtasbu

en range("a1") stefane

le repertoire est supprimé
et tous les autres qui contiennentt comme nom stefane 5487 et 5488
supprimés
sachant que il existe sous FACTURE" un nombre important de sous dossiers.


merci

4 réponses

Avatar
DanielCo
Bonjour,

Sub SuppDossiers()
Set fso = CreateObject("Scripting.FileSystemObject")
Set dossier_racine = fso.getfolder("C:FACTURE")
Set dossier_racine = fso.getfolder("C:temp")
Lit_dossier dossier_racine
End Sub

Sub Lit_dossier(ByRef dossier)
If InStr(1, d.Name, [A1].Value) > 0 Then
For Each f In dossier.Files
Kill f.Path
Next f
RmDir dossier
End If
For Each d In dossier.SubFolders
Lit_dossier d
Next
End Sub

Sois prudent en testant. Les éléments supprimés (fichiers et dossiers
sont supprimés définitivement.
Daniel


Bonjour
j ai un repertoire nommé "FACTURE" sous c:

je voudrais qu'en tapant un mot an range("A1")

il me supprime tous les repertoires contenant ce mot.

exemple :

5487 stefane tutesvu
5488 stefane quandtasbu

en range("a1") stefane

le repertoire est supprimé
et tous les autres qui contiennentt comme nom stefane 5487 et 5488 supprimés
sachant que il existe sous FACTURE" un nombre important de sous dossiers.


merci
Avatar
Gloops
Bonjour,

DanielCo a écrit, le 20/02/2012 11:59 :
Bonjour,

Sub SuppDossiers()
Set fso = CreateObject("Scripting.FileSystemObject")
Set dossier_racine = fso.getfolder("C:FACTURE")
Set dossier_racine = fso.getfolder("C:temp")
Lit_dossier dossier_racine
End Sub

Sub Lit_dossier(ByRef dossier)
If InStr(1, d.Name, [A1].Value) > 0 Then



Pardon, mais ... ce n'était pas dossier, plutôt que d, là ?


For Each f In dossier.Files
Kill f.Path
Next f
RmDir dossier
End If
For Each d In dossier.SubFolders
Lit_dossier d
Next
End Sub

Sois prudent en testant. Les éléments supprimés (fichiers et doss iers
sont supprimés définitivement.
Daniel



Si on veut on peut faire des tests en remplaçant l'instruction de
suppression par une qui renomme le dossier. Comme ça on voit ce qui a
été renommé (par exemple en ajoutant " à supprimer"), et si on s' est
trompé c'est vite fait de remettre le nom comme il était.

Une fois qu'on est satisfait du résultat on peut remettre la suppressio n.
Avatar
DanielCo
Sub Lit_dossier(ByRef dossier)
If InStr(1, d.Name, [A1].Value) > 0 Then



Pardon, mais ... ce n'était pas dossier, plutôt que d, là ?



Tout à fait. donc corrigé :

If InStr(1, dossier.Name, [A1].Value) > 0 Then

Daniel
Avatar
DanielCo
Ca fonctionne sauf si le dossier à supprimer contient des
sous-dossiers. Est-ce ton cas ?
Daniel

stef b a écrit
Bonjour
j ai un repertoire nommé "FACTURE" sous c:

je voudrais qu'en tapant un mot an range("A1")

il me supprime tous les repertoires contenant ce mot.

exemple :

5487 stefane tutesvu
5488 stefane quandtasbu

en range("a1") stefane

le repertoire est supprimé
et tous les autres qui contiennentt comme nom stefane 5487 et 5488 supprimés
sachant que il existe sous FACTURE" un nombre important de sous dossiers.


merci