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 :

Suppression fichier avec macro VB [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Femme Profil pro
    M1 MIAGE
    Inscrit en
    Janvier 2013
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : M1 MIAGE

    Informations forums :
    Inscription : Janvier 2013
    Messages : 61
    Points : 48
    Points
    48
    Par défaut Suppression fichier avec macro VB
    Bonjour à tous !

    J'ai fait ce petit code qui me permettrait de supprimer des fichiers en entrant en paramètre le chemin du dossier et l'extension genre *.doc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Public Function DetruireLesFichiers(ByVal PublicationFolder As String, ByVal PatternList As String) As Long
        Dim chemin As String
        chemin = PublicationFolder & "\" & PatternList
        If ExisteFichier(chemin) Then
        '    SetAttr chemin, vbNormal
            Kill (chemin)
        Else
          MsgBox vbCrLf & "Aucun fichier correspondant aux patterns : " & PatternList & " n 'a été trouvé" & vbCrLf
          MsgBox vbCrLf & chemin
        End If
        Application.StatusBar = False
        DetruireLesFichiersDeLaPublicationDeConfigurationCorrespondantAuxPattens = 0
    End Function

    Le problème c'est que j'aimerais supprimer entre autre les fichiers Thumbs.db, mais il passe systématiquement dans le else... j'ai fait le test avec *.htm et ça fonctionne... comment faire pour les thumbs.db ?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     SetAttr chemin, vbNormal
    ça j'ai essayé, et ça ne marche pas. Il ne trouve pas les fichiers cachés...

    Merci pour vos réponses

  2. #2
    Membre éprouvé
    Homme Profil pro
    Programmeur analyste
    Inscrit en
    Février 2009
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 546
    Points : 1 116
    Points
    1 116
    Par défaut
    Bonjour,
    Normalement les fichiers thumbs.db sont créer quand un fichier est ouvert ou un dossier ouvert.
    Si le dossier est ouvert par quelqu'un on ne peut pas supprimer ces fichiers.
    Quand le dossier n'est plus ouvert par aucun utilisateur alors les fichiers thumbs.db se supprime automatiquement.

    Dans certaine condition, que je ne peut expliqué, les fichier thumbs.db reste coller, ne se supprime pas automatiquement.
    Dans ce cas unique on peut les supprimer à la main ou par programmation.

    Dans votre code, il ne les trouvent pas, et c'est normal, car ces fichiers sont caché.
    Il faut lister les fichier caché de cette manière
    https://support.microsoft.com/fr-ca/...?wa=wsignin1.0

    en espérant de vous avoir aidé.

  3. #3
    Membre du Club
    Femme Profil pro
    M1 MIAGE
    Inscrit en
    Janvier 2013
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : M1 MIAGE

    Informations forums :
    Inscription : Janvier 2013
    Messages : 61
    Points : 48
    Points
    48
    Par défaut
    En fait votre fonction liste les fichiers cachés mais dans un msgbox, elle ne les affiche pas dans le dossier il me semble.

    J'ai trouvé ce topic résolu : http://www.developpez.net/forums/d37...ach-d-fichier/

    Du coup j'ai essayé :

    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
    Dim chemin As String
        Dim chemDir As String
     
        chemin = Replace(PublicationFolder, "\", "/")
     
        chemDir = Dir(chemin, vbSystem And vbHidden)
     
        chemin = Replace(PublicationFolder, "/", "\")
        chemin = chemin & "\" & PatternList
     
        If ExisteFichier(chemin) Then
        '    ListeFichiers chemin, vbSystem + vbHidden
        '    SetAttr chemin, vbNormal
            Kill (chemin)
        Else
          MsgBox vbCrLf & "Aucun fichier correspondant aux patterns : " & PatternList & " n 'a été trouvé" & vbCrLf
        End If
    Mais je ne dois pas utiliser Dir correctement... ça ne fonctionne pas non plus...
    J'ai utilisé les replace parce que sans, chemDir était vide...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    chemin = Replace(PublicationFolder, "\", "/")
     
        chemDir = Dir(chemin, vbSystem And vbHidden)
     
        chemin = chemin & "/" & PatternList
     
        MsgBox vbCrLf & "chemin" & vbCrLf & chemin
        MsgBox vbCrLf & "chemDir" & vbCrLf & chemDir
    la message box de chemDir montre bien que la variable est vide...

  4. #4
    Membre éprouvé
    Homme Profil pro
    Programmeur analyste
    Inscrit en
    Février 2009
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 546
    Points : 1 116
    Points
    1 116
    Par défaut
    Citation Envoyé par minimoack Voir le message
    En fait votre fonction liste les fichiers cachés mais dans un msgbox, elle ne les affiche pas dans le dossier il me semble.
    Bonjour,
    le lien que je vous ai mis fonctionne très bien pour les fichier caché.
    Il suffit de l'adapter à votre code.

  5. #5
    Membre du Club
    Femme Profil pro
    M1 MIAGE
    Inscrit en
    Janvier 2013
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : M1 MIAGE

    Informations forums :
    Inscription : Janvier 2013
    Messages : 61
    Points : 48
    Points
    48
    Par défaut
    C'est bon, merci pour votre aide mais j'ai réussi sans avoir à ajouter des fonctions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Dim chemDir As String
    chemDir = Dir(PublicationFolder & "\" & PatternList, vbSystem + vbHidden)
    If chemDir <> "" Then
            SetAttr PublicationFolder & "\" & chemDir, vbNormal
            Kill (PublicationFolder & "\" & chemDir)
    Else
            MsgBox vbCrLf & "Aucun fichier correspondant aux patterns : " & PatternList & " n 'a été trouvé" & vbCrLf
    End If
    Merci pour votre attention !

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

Discussions similaires

  1. Aide mise en réseau fichier avec macro
    Par pheonix00fr dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 21/05/2010, 10h25
  2. [XL-2007] plus de clic droit suite à un fichier avec macro
    Par Le Méthanier dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 14/04/2010, 22h49
  3. Ouvrier un fichier avec macro depuis un autre fichier avec macro
    Par Jeanvaljean44 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 21/11/2008, 11h23
  4. suppression fichiers avec access et droits
    Par alexg81 dans le forum Access
    Réponses: 5
    Dernier message: 19/04/2006, 15h31
  5. suppression fichier avec erreur
    Par zeus312 dans le forum C
    Réponses: 5
    Dernier message: 23/02/2006, 11h24

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