Supprimer un repertoire

badbad

XLDnaute Junior
Bonjour,
J’utilise le code suivant pour supprimer un répertoire:
Sub CleaningCgr()

Dim repertoire As String
Dim repertoireCGR As String

repertoire = ThisWorkbook.Worksheets("Configuration").Cells(2, 1).Value
repertoireCGR = repertoire & "\cgr"

RmDir repertoireCGR 'je supprime le repertoire non vide

MkDir (repertoireCGR) 'je recre le repertoire vide
End Sub

Ce bout de code est compris dans une macro plus grande. Le but de la macro général et de tester les performances d’un logiciel nome CATIA V5. Ce logiciel crée des données temporaire dans le répertoire que je veux détruire pare avoir fait tourner l’application.
Mon problème est le suivant :
Si je fais tourner l application V5 je ne suis plus capable de supprimer le répertoire en utilisant le code si dessus (Error 75, Path/File access error) par contre manuellement j’en suis toujours capable.
Je ne comprends pas pourquoi le comportement est différent être Excel et manuel. Il semble bien sur que cela soit un droit d’accès différent.
Existe-t-il un code me permettant de changer les droits sur le répertoire et vat il marcher comme il semble que depuis Excel je n ai déjà pas les droits ?

Merci pour toute aide.

Regards
Alexandre Bessy
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re : Supprimer un repertoire

Bonjour Alexandre, le Forum

Normalement le RmDir , qu'il soit lancé depuis VBA, ou un simple CMD, ou manuel a besoin des mêmes droits (enfin se méfier quand mêmes avec les dernières versions d'Excel 2010/13 si au niveau sécurité ils n'auraient pas bloquer ce genre d'instructions... Je n'ai pas testé)

Deux ou trois pistes me viennent à l'esprit,
Vérifier que les droits NTFS des Folders sont au niveau Modify (ou full Control) pour le compte utilsateur en question...
Vérifier que le Soft V5 ne reste pas en Lecture sur un fichier, auquel cas ce serait normal que l'accès soit refusé... Ou que le soft créé des Files en ""Read Only"
Vérifier le chemin construit dans ton code est correct

Bon courage
@+Thierry
 

badbad

XLDnaute Junior
Re : Supprimer un repertoire

Merci a vous deux pour vos réponses.
_Thierry:Merci de ton aide je viens de modifier mon poste, MJ13 est dans le vrai. Le message d'erreur n'est pas parlant!


MJ13: Dans le mil! voici ce que dis la doc excel:
RmDir path
The required path argument is a string expression that identifies the directory or folder to be removed. The path may include the drive. If no drive is specified, RmDir removes the directory or folder on the current drive.

Remarks
An error occurs if you try to use RmDir on a directory or folder containing files. Use the Kill statement to delete all files before attempting to remove a directory or folder.

Je vais tenter le kill alors!
Merci encore de votre temps
Regards
Alexandre Bessy
 
Dernière édition:

badbad

XLDnaute Junior
Re : Supprimer un repertoire

Status:
Je n arrive pas a faire marcher le Kill
et le code suivant:
Sub CleaningCgr(ByVal dir_name As String)

Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
fso.DeleteFolder (dir_name)
Endsub
ne marche pas non plus...
AB
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re : Supprimer un repertoire

Bonsoir Alexandre, MJ13

Mais oui c'était bien sûr ! bien vu MJ13 !

Le FSO DeleteFolder pourtant lui devrait fonctionner ...
DeleteFolder(filename,force])
A la manière de DeleteFile, permet de supprimer un répertoire et tous les fichiers et sous-répertoires qu'il contient

Pour "Force"... Voir

http://msdn.microsoft.com/en-us/library/ca0at0xh(v=vs.84).aspx


Force
Optional. Boolean value that is true if folders with the read-only attribute set are to be deleted; false (default) if they are not.

@+Thierry
 

Discussions similaires

Réponses
6
Affichages
343
Réponses
0
Affichages
541

Statistiques des forums

Discussions
312 490
Messages
2 088 882
Membres
103 981
dernier inscrit
vinsalcatraz