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

VBA Access Discussion :

Supprimer les fichiers de dossier (S/dossier) en fonction d'une date ou Nb de Jours


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    196
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 196
    Par défaut Supprimer les fichiers de dossier (S/dossier) en fonction d'une date ou Nb de Jours
    Je cherche à supprimer des fichiers dans un dossier qui comporte des sous dossier les fichiers ( des bases access) qui n'ont pas été modifié depuis un certain nombre de jour.

    J'ai trouver des codes en VBScript :

    Effacer fichier/dossier de + de xjrs

    Effaces fichier et dossier qui date de plus de 15Jr

    Mais je ne sais pas les adapter en vba ..

    quelqu'un aurait-il fait ce genre de chose , je n'ai rien trouvé dans la Faq en VBA.

    Merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Les deux codes que tu as utilisent la bibliothèque FSO.

    Je te conseille la lecture de cet article : http://warin.developpez.com/access/fichiers/

    Ainsi tu comprendras à quoi correspond ton code.

    Starec

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    196
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 196
    Par défaut
    Merci Starec, je suis passé à coté de cet article.

    J'ai bien compris pour les références, j'ai regardé la manière d'utiliser l'objet FileSystemObject.


    néanmoins sur le code suivant j'ai une erreur ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    'instantation du file system object (FSO)
     
    Set FSO = CreateObject("Scripting.FileSystemObject")
    "instruction incorrecte a l'intérieur d'une procédure"

    code utilisé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    'declaration des variables
    Dim folder
    Dim Subfolder
    Dim path
    Dim FSO
     
    'instantation du file system object (FSO)
     
    Set FSO = CreateObject("Scripting.FileSystemObject")
     
    'initialisation de la variable contenant le chemin du repertoire racine
    path = "F:\testeffacement"
     
    'appel de la fonction recurcive avec comme argument le chemin du repertoire
    'racine
    recurcive path
     
    Function recurcive(chemin) 'fonction récurcive pour traiter tout l'arboresence
                               'des dossiers
     
    Set folder = FSO.GetFolder(chemin)  'utilisation du FSO pour prendre le dossier
                                        'racine
    Set Subfolder = folder.SubFolders   'definition de la varibale pour les S/dossiers
     
    For Each A In Subfolder 'pour chaque dossier dans le sous dossier racine
            Set fic = A.Files 'definition de la variables toucher les fichier des dossier
     
            fichier fic 'appel de la fontion fixhier
            recurcive A 're-appel de la fonction recurcive pour traiter les S/dossiers
            dossier
    Next
    End Function 'fin de la fonction
     
     
    Function fichier(fic) 'fonction qui traite les fichiers dans les dossiers A
     
    For Each objfile In fic 'pour chaque fichier dans dossiers de fichier
            Set f = FSO.GetFile(objfile) 'utilisation du FSO pour prendre le fichier
                If DateDiff("D", objfile.DateLastModified, Now) > 10 Then 'si la derniére modification du fichier est plus ancienne que X jours
                MsgBox objfile & " a suprimer" 'alors effacer le fichier avec option de forcer pour les fichier en lecture seule
                'objFSO.DeleteFile f, force = yes
                End If 'fin du SI
        Next
     
    End Function 'fin de la fonction
     
     
    Function dossier() 'fonction pour supprimer les dossier vides (taille = 0 )
           Set folder = FSO.GetFolder(path) 'utilisation du FSO pour prendre le dossier
           For Each B In folder.SubFolders 'pour chaque dossier dans le dossier racine
                    If B.Size = 0 Then 'si la taille du dossier est egal a 0 (donc vide)
                    MsgBox B & B.Size 'effacer le dossier
                    'objFSO.DeleteFolder subfolders, force = yes
                    End If 'fin du SI
            Next
     
    End Function 'fin de la fonction
    Je comprend pas tout encore mais je me soigne pour çà .
    Je vais tacher de trouver l'erreur.

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    bonjour,
    vérifie que tu as bien pensé à ajouter les références pour les FSO.
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    196
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 196
    Par défaut
    J'ai bien ajouter la référence "Microsoft Scripting Runtime" pourtant

  6. #6
    Membre Expert

    Profil pro
    Inscrit en
    Mars 2006
    Messages
    1 350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 350
    Par défaut
    Bonsoir,

    Egalement, je ne comprends pas tout mais il me semble qu'avec la bibliothèque d'objets microsoft scripting runtime dans les declaration des variables généralement on y voit quelque chose du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ' Variables 'Scripting'
    Dim fso As Scripting.FileSystemObject
    Dim fld As Scripting.Folder
    Dim fle As Scripting.File
     
    ' On y voit aussi vers la fin :
     
    ' Libération des objets
    Set fle = Nothing
    Set fld = Nothing
    Set fso = Nothing
    Cordialement.

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

Discussions similaires

  1. [AppleScript] Supprimer des sous dossiers sans supprimer les fichiers
    Par mathieu707 dans le forum AppleScript
    Réponses: 9
    Dernier message: 19/03/2018, 16h58
  2. Supprimer les fichiers d'un dossier
    Par ManusDei dans le forum Tcl/Tk
    Réponses: 1
    Dernier message: 16/11/2012, 21h58
  3. Réponses: 2
    Dernier message: 31/07/2012, 11h50
  4. [Batch] Lister les fichiers dans en un dossier et dossier enfant avec arborescence
    Par Sparktacus dans le forum Scripts/Batch
    Réponses: 8
    Dernier message: 30/11/2009, 14h16

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