IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Supprimer tous les fichiers du répertoire [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de Vadorblanc
    Profil pro
    Inscrit en
    Février 2008
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 309
    Par défaut Supprimer tous les fichiers du répertoire
    Bonjour
    Cette macro supprime tous les fichiers du dossier selon une date et je souhaiterais qu'elle boucle aussi sur les sous dossiers de façon à supprimer aussi les fichiers des sous dossiers.
    Merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub test()
    Dim myFso, myFile, myFolder
    Set myFso = CreateObject("Scripting.FileSystemObject")
    'sélection du dossier à analyser
    Set myFolder = myFso.GetFolder("C:\XXX\")
    'boucle sur tous les fichier du dossier
    For Each myFile In myFolder.Files
        'si la date de modification du fichier est antérieure à 1 jours, effacer le fichier
        If DateDiff("d", myFile.DateLastModified, Now) > 1 Then myFile.Delete True
    Next myFile
    End Sub

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    D'une manière récursive
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub Supprime(dossier As String)
    Dim myFso As Object, myFile As Object, myFolder As Object, SubFolder As Object
    Set myFso = CreateObject("Scripting.FileSystemObject")
     
    Set myFolder = myFso.GetFolder(dossier)
    For Each myFile In myFolder.Files
         If DateDiff("d", myFile.DateLastModified, Now) > 1 Then myFile.Delete True
    Next myFile
     
    For Each SubFolder In myFolder.subfolders
         Supprime SubFolder.Path
    Next SubFolder
    Set myFolder = Nothing
    End Sub

  3. #3
    Membre éprouvé Avatar de Vadorblanc
    Profil pro
    Inscrit en
    Février 2008
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 309
    Par défaut
    Bonjour mercatog
    Merci pour ton code, mais faut-il ajouter outils / Référence ? car rien ne se passe, je n'ai pas la main pour activer le module.
    Merci

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    C'est une procédure paramétrée
    crée une autre procédure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    sub test()
    Supprime "C:\XXX"
    'ou Call Supprime("C:\XXX")
    end sub

  5. #5
    Membre éprouvé Avatar de Vadorblanc
    Profil pro
    Inscrit en
    Février 2008
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 309
    Par défaut
    Mercatog
    j'ai une erreur d'exécution 28
    Espace pile insuffisant
    et une ligne en jaune dans le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Supprime SubFolder.Path
    Merci

  6. #6
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Tu dois avoir un très grand dossier avec beaucoup de sous dossiers ou fichiers. c'est la limite de la méthode.

  7. #7
    Membre éprouvé Avatar de Vadorblanc
    Profil pro
    Inscrit en
    Février 2008
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 309
    Par défaut
    Mercatog
    J'ai fait une bêtise, tout fonctionne maintenant, c'est super tout marche bien.
    Un grand Merci à toi, faut que je fasse attention à ce code car il est destructeur...hou là là...
    Bien cordialement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [C#] Supprimer tous les fichiers d'un dossier
    Par nitrous007 dans le forum Windows Forms
    Réponses: 7
    Dernier message: 05/09/2015, 11h17
  2. Réponses: 5
    Dernier message: 23/06/2008, 14h47
  3. [Shell] Supprimer tous les fichiers sauf XX et YY
    Par Invité dans le forum Linux
    Réponses: 9
    Dernier message: 25/07/2007, 10h37
  4. Réponses: 3
    Dernier message: 22/05/2006, 17h00
  5. Réponses: 4
    Dernier message: 24/09/2004, 10h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo