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 :

vba - Supprimer un fichier ouvert


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    306
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 306
    Points : 164
    Points
    164
    Par défaut vba - Supprimer un fichier ouvert
    Bonjour,

    Je voudrais supprimer tous les fichiers se trouvant dans un répertoire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    StrPath="C:\Exports"
    Set FSO = CreateObject("Scripting.FileSystemObject")
    If FSO.FolderExists(StrPath & "\FichesTemp") Then
        Set Files = FSO.GetFolder(StrPath & "\FichesTemp").Files
        For Each File In Files
            Kill File
        Next File
    end if
    Ce la fonctionne bien sauf si l'un des fichiers est ouvert ?
    Comment faire ?

    Merci bien.

  2. #2
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 919
    Points
    55 919
    Billets dans le blog
    131
    Par défaut
    Bonjour

    Il faut fermer le fichier... C'est le seul moyen, à mon avis. Si tu essayes, via l'explorateur, de fermer un fichier ouvert, tu auras un message d'erreur... Ben par vba, c'est pareil...

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    306
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 306
    Points : 164
    Points
    164
    Par défaut
    Alors, oui... on est bien d'accord mais je ne connais pas la syntaxe pour fermer un "File".

    Merci!

  4. #4
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Bonjour tlm,

    Ce ou ces fichiers ouverts le sont sur ton PC ou sur le PC d'un autre utilisateur ?

    Si c'est le second cas, je ne vois pas d'autre solution que de prendre le téléphone et de lui demander (gentillement) de le fermer.

    Avec une petite gestion d'erreur, tu pourrais déjà supprimer tous ceux qui ne sont pas ouverts
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    StrPath="C:\Exports"
    Set FSO = CreateObject("Scripting.FileSystemObject")
    If FSO.FolderExists(StrPath & "\FichesTemp") Then
        Set Files = FSO.GetFolder(StrPath & "\FichesTemp").Files
        For Each File In Files
            On Error Resume Next
            Kill File
        Next File
    end if

  5. #5
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 919
    Points
    55 919
    Billets dans le blog
    131
    Par défaut
    Une autre idée pourrait être de gérer l'erreur en stockant "quelque part..." les noms complets des fichiers qui n'ont pas pu être supprimés, et de:
    soit relancer au travers d'une boucle jusqu'à ce qu'il n'y ait plus d'erreurs (pas bon, à mon avis...)
    soit de les garder dans un fichier log, une table access, une feuille Excel, ... pour tenter de les supprimer à nouveau lors d'une prochaine tentative...

  6. #6
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut


    Juste pour dire que ce genre de traitement de nettoyage est quelquechose qui est typiquement à exécuter au startup du pc (ou du serveur) pour assurer un maximum d'efficacité.

    Tu peux aussi lancer ce traitement de manière automatique avec un certain timing entre les runs. Cela te donnera un résultat le meilleur possible.


  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    306
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 306
    Points : 164
    Points
    164
    Par défaut
    Ok,
    Merci beaucoup pour toutes vos réponses.
    En fait ces fichiers sont (potentiellement) ouverts sur les ordis de mes clients quand ils lancent la macro.

    Je croyais qu'il existait un moyen de fermer des "file"... mais comme ce sont tous des Ppt, je vais passer par un classique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For Each Pres In ppApp.Presentations
       Pres.Close
    Next
    Encore merci.

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

Discussions similaires

  1. Supprimer un fichier ouvert
    Par MeWaa dans le forum C
    Réponses: 5
    Dernier message: 05/05/2011, 15h10
  2. VBA chemin du fichier ouvert
    Par xian21 dans le forum Général VBA
    Réponses: 1
    Dernier message: 13/03/2009, 23h20
  3. Réponses: 1
    Dernier message: 09/12/2005, 19h12
  4. [VBA][Office 2003] Fichier ouvert depuis IE ou Word?
    Par nbaudraz dans le forum VBA Word
    Réponses: 2
    Dernier message: 12/10/2005, 14h27
  5. Réponses: 3
    Dernier message: 06/09/2005, 10h27

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