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 Word Discussion :

Suppression fichier Word [WD-2007]


Sujet :

VBA Word

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mars 2008
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 203
    Points : 175
    Points
    175
    Par défaut Suppression fichier Word
    Bonjour à tous

    Je cherche depuis quelques temps une solution pour supprimer le fichier DOC lors de sa fermeture.
    J'ai un userform qui s'ouvre lors de la fermeture du document qui permet de choisir à l'aide d'une coche si l'on veut supprimer le document après l'avoir enregistré en PDF :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Document_Close()
        Dim suppr As Boolean
     
        Enregistrement.Show
        If suppr = True Then
            NomDoc = ActiveDocument.name
            RépDoc = ActiveDocument.Path
            ActiveDocument.SaveAs "C:\TEMP\Suppression.doc"
            Kill (RépDoc & "\" & NomDoc)
        End If
     
    End Sub
    En fait Word a en "mémoire" que le fichier est ouvert et le Kill ne fonctionne pas.

    Une idée somebody ?

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Avant de faire un delete, il faut fermer le document.
    Le document toujours ouvert est en ReadOnly.
    Et pourquoi le supprimer ?
    Si tu crées un nouveau document avec le même nom, le second écrase le premier.

    Ajoute simplement une ligne pour fermer le document.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Août 2011
    Messages : 35
    Points : 17
    Points
    17
    Par défaut
    d'après ce que j'ai compris le 2e document crée est en PDF donc il n'écrasera pas le .Doc
    Il faudra donc essayer par fermer le document d'abord comme indiqué.

  4. #4
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mars 2008
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 203
    Points : 175
    Points
    175
    Par défaut
    Merci pour vos réponses.

    Mais je suis déjà en procédure de fermeture du document actif:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub Document_Close()
    La méthode Close ne fonctionne donc pas pour libérer le document.
    C'est pour cela que j'ai essayé de sauvegarder dans un autre fichier.
    Ce n'est pas du tout efficace...

    Olivier, qu'entends-tu par cela:
    Et pourquoi le supprimer ?
    Si tu crées un nouveau document avec le même nom, le second écrase le premier.
    Je ne comprends pas...

  5. #5
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    J'ai pas fait attention que tu étais dans la procédure de fermeture.

    Tant que la procédure n'est pas terminée, le document est toujours ouvert et par conséquent en Read Only.

    Une explication.
    Si tu ne supprime pas le document qui a été crée.
    La prochaine fois que tu feras une sauvegarde via un morceau de code, il est simplement remplacé par la nouvelle version sans devoir le supprimer.

    Si tu le supprimes pour des raison de sécurité, on peut trouver une autre astuce pour ne pas le supprimer, comme dans un répertoire utilisateur.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  6. #6
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mars 2008
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 203
    Points : 175
    Points
    175
    Par défaut
    Merci Olivier . J'ai réussi avec un évènement (et ton tuto http://heureuxoli.developpez.com/off...-word/#LII-C-2):

    J'ai tout mis dans un module de classe et un BeforeClose me permet de fermer mon fichier DOC, puis de le supprimer:
    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 WithEvents appWord As Word.Application
     
    Private Sub appWord_DocumentBeforeClose(ByVal Doc As Document, Cancel As Boolean)
        Enregistrement.Show
     
        If suppr = True Then
            NomDoc = ActiveDocument.name
            RépDoc = ActiveDocument.Path
            ActiveDocument.Close
            DoEvents
            Kill (RépDoc & "\" & NomDoc)
        End If
     
    End Sub
    L'objet de ma Form "Enregistrement" est de présenter sous forme graphique avec des coches les possibilités de fermeture du fichier ouvert.
    Dans le cas d'une sauvegarde PDF, j'ai une coche pour donner la possibilité de supprimer le fichier source DOC.
    Images attachées Images attachées  

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

Discussions similaires

  1. Lecture de fichiers Word 97
    Par BARBIER dans le forum Modules
    Réponses: 4
    Dernier message: 09/07/2004, 13h55
  2. Ecriture sur un fichier Word: Pb Ouverture
    Par drinkmilk dans le forum ASP
    Réponses: 2
    Dernier message: 11/06/2004, 09h48
  3. [Struts][Oracle]Upload fichier word dans une base
    Par Maximil ian dans le forum Struts 1
    Réponses: 7
    Dernier message: 10/02/2004, 15h52
  4. Comparaison de fichiers Word
    Par Zelphalya dans le forum Langage
    Réponses: 5
    Dernier message: 20/10/2003, 15h15
  5. [] Convertir un fichier word en pdf
    Par SpaceFrog dans le forum VBA Word
    Réponses: 7
    Dernier message: 06/12/2002, 15h27

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