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 :

Recherche code vba destruction fichier [WD-2003]


Sujet :

VBA Word

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Février 2009
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 334
    Points : 253
    Points
    253
    Par défaut Recherche code vba destruction fichier
    Bonjour ç vous tous,
    Etant plus que novice en vba, je cherche âme charitable qui pourrait me faire un code permettant la destruction totale de mon fichier .doc nommé :
    ma vie.doc si ce fichier est ouvert plus de 15 jours après sa dernière ouverture.
    J'ai conscience que ma demande n'est pas banale et je m'en excuse.
    Je vous en remercie par avance.
    Je préfère une vérité nuisible à une erreur utile : la vérité guérit le mal qu'elle a pu causer.

  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,

    c'est peu banal comme demande !

    Malheureusement, le fait de tenter l'ouverture du fichier modifie la date du dernier accès au document et lui donner la date en cours.

    Pour y arriver, il faut faire le test avant même de penser à ouvrir 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
    Invité
    Invité(e)
    Par défaut
    Bonjour

    @Heureux-Oli : et en passant par là http://heureuxoli.developpez.com/office/word/variables/ avec un stockage lors de la fermeture du document et interrogation lors de l'ouverture ?

    Ce ne serait pas possible ?

    Philippe

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Février 2009
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 334
    Points : 253
    Points
    253
    Par défaut passé une certaine date
    re,
    Je vous remercie de vousinteresser à ma demande et, je suggère éventuellement, si passé une certaine date c'est envisageable
    En vous remerciant.
    Je préfère une vérité nuisible à une erreur utile : la vérité guérit le mal qu'elle a pu causer.

  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
    Citation Envoyé par Philippe JOCHMANS Voir le message
    Bonjour

    @Heureux-Oli : et en passant par là http://heureuxoli.developpez.com/office/word/variables/ avec un stockage lors de la fermeture du document et interrogation lors de l'ouverture ?

    Ce ne serait pas possible ?

    Philippe
    Salut Philippe,

    J'ai fait quelques essais avec le FileSystemObject qui possède quelques propriétés intéressantes "DateLastAccessed".

    Lorsque tu accèdes simplement au fichier, pour une lecture, il est malvenu d'imposer une sauvegarde, or pour modifier les propriétés du document, il faut passer par une sauvegarde.

    Maintenant, on peut lancer une destruction de fichier sur un répertoire ou une série de répertoire en fonction d'un critère de date ou autre.
    Mais tous les fichiers qui sont positifs au critère sont détruits.

    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
     
    Sub SupressionDeFichier()
    Dim oDlg As FileDialog
    Dim oFSO As Scripting.FileSystemObject
    Dim oFol As Scripting.Folder
    Dim oFil As Scripting.File
    Set oFSO = New Scripting.FileSystemObject
     
    Set oDlg = Application.FileDialog(msoFileDialogFolderPicker)
    oDlg.Show
     
     
    Set oFol = oFSO.GetFolder(oDlg.SelectedItems(1))
    For Each oFil In oFol.Files
    If oFil.Name = "ma vie.doc" Then
    If Date - oFil.DateLastAccessed > 15 Then
        oFil.Delete
    End If
    End If
    Next oFil
    Set oFol = Nothing
    Set oFSO = Nothing
    End Sub
    Il faut ajouter au projet la librairie Microsoft Scripting RunTime
    http://warin.developpez.com/access/fichiers/

    Mais ce code ne fonctionne pas !!!
    On modifie lors de la lecture la date du fichier.
    Et il n'est pas supprimé !

    Si tu as un autre critère, il serait le bien venu.
    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 actif
    Profil pro
    Inscrit en
    Février 2009
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 334
    Points : 253
    Points
    253
    Par défaut Critères
    Re,
    Je me doute bien que ma demande est assez particulière, mais il s'agit q'un gros document (1584 pages sous Word 2003) dont je ne souhaite absolument pas qu'après mon décès il soit lu par qui que ce soit. Par trop explosif si j'ose m'exprimer ainsi.
    Ce document , je peux le mettre dans un dossier spécifique sous la forme suivante :
    C:\Mon_secret\Ma_Vie
    par exemple si cela vous convient pour l'écriture du code ou tout autre astuce à votre convenance.
    Pour ce qui est de la date, je ne pense pas que la date du document ou les propriétes de celui-ci fera l'objet d'une modification avant ouverture.
    N'est-il pas possible de détruitre le répertoire Mon_Secret par exemple ?
    Je rappelle que je n'y connais rien en vba.
    En vous remerciant
    Je préfère une vérité nuisible à une erreur utile : la vérité guérit le mal qu'elle a pu causer.

  7. #7
    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,

    C'est plus précis !

    Si on tient compte de la date de modification et plus d'ouverture, c'est plus facile.
    Mais il est plus facile de mettre un mot de passe sur le fichier.

    On peut aussi envisager une demande banale comme une sauvegarde et avec un clic et un code, effacer le contenu, faire une sauvegarde et fermer le fichier.

    Les combinaisons sont multiples.
    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 !

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Février 2009
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 334
    Points : 253
    Points
    253
    Par défaut
    Bonsoir Heureux-oli,
    Une idée comme ca :
    Si à l'ouverture du document, ca demande uin mot de passe et ou que l'on clic croix rouge - annuler - valider ca effacerait tout le document, puis enregistrerait celui-ci et il ne resterait qu'une page vierge par exemple.
    Est-ce envisageable ?
    En vous remerciant
    Je préfère une vérité nuisible à une erreur utile : la vérité guérit le mal qu'elle a pu causer.

  9. #9
    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,

    Oui, je vais te donner un morceau de code.

    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
     
    Sub Document_Open()
    Const myMDP = "o"
    Dim myResult As String
    If ActiveDocument.Name = "ma vie.doc" Then
     
    myResult = InputBox("Entrez le code !", "Vérification")
     
    If myResult = "o" Then
        MsgBox "c'est le bon code !"
    Else
    Application.ScreenUpdating = False
        With ActiveDocument
            .Range.Delete
            .Save
            .Close
        End With
    Application.ScreenUpdating = True
        MsgBox "le code est mauvais"
     
    End If
     
    End If
    End Sub
    Attention, ce code n'a aucune garantie, si la touche Maj est enfoncée pendant l'ouverture, la macro ne fonctionne pas !!

    Le code est o

    Fais l'essai sur un document bidon qui doit s'appeler "ma vie.doc", une fois effacées, les données sont effacées pour du bon.
    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 !

  10. #10
    Membre actif
    Profil pro
    Inscrit en
    Février 2009
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 334
    Points : 253
    Points
    253
    Par défaut Code
    Re,
    J'ai tenté des essais sans succés, je me permets de mettre un fichier bidon afin que vous vous rendiez compte car je ne maitrise pas du tout le vba
    http://www.cijoint.fr/cjlink.php?file=cj200906/cijARmTzNJ.doc
    en vous remerciant
    Je préfère une vérité nuisible à une erreur utile : la vérité guérit le mal qu'elle a pu causer.

  11. #11
    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,

    Malheureusement, je ne peux télécharger les fichiers de ci-joints.

    Mais j'ai fait un exemple.
    Fichiers attachés Fichiers attachés
    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 !

  12. #12
    Membre actif
    Profil pro
    Inscrit en
    Février 2009
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 334
    Points : 253
    Points
    253
    Par défaut
    Re,
    J'ai regardé le fichier proposé par vos soins, mais rien ne se psse.
    Je remets mon fichier origine (essai) car je viens de voir pour joindre un fichier
    En vous remerciant de votre patience
    Fichiers attachés Fichiers attachés
    Je préfère une vérité nuisible à une erreur utile : la vérité guérit le mal qu'elle a pu causer.

  13. #13
    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,

    Je pense que c'est lié à la sécurité des macros.

    Tu dois diminuer le niveau.
    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 !

  14. #14
    Membre actif
    Profil pro
    Inscrit en
    Février 2009
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 334
    Points : 253
    Points
    253
    Par défaut
    Re,
    J'ai mis au plus bas niveau la sécurité.
    Ce que je veux dire, c'est que la fenêtre demandant le mot de passe ne s'affiche pas à l'ouverture du document, seulement si j'exécute le code par la touche F8
    Je te remercie Heureux-oli
    Je préfère une vérité nuisible à une erreur utile : la vérité guérit le mal qu'elle a pu causer.

  15. #15
    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,

    La macro doit se trouver dans le document et pas dans le normal.

    Document_Open() permet d'exécuter un code lors de l'ouverture d'un document.

    Je ne comprend pas d'où peut venir ce blocage.
    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 !

  16. #16
    Membre actif
    Profil pro
    Inscrit en
    Février 2009
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 334
    Points : 253
    Points
    253
    Par défaut
    Bonjour,
    J'ai vainement oassé la journée d'hier et cette nuit à faire fonctionner ce code sans succés hélas.
    Je pense que je vais choisir la solution la plus simple sui soit : supprimer purement et définitivement ce dossier.
    Je vous remercie d'avoir tenté de m'aider et je dois dire que ca semble plus facile sous Excel que sous Word.
    Bonne continuation à vous.
    Je préfère une vérité nuisible à une erreur utile : la vérité guérit le mal qu'elle a pu causer.

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

Discussions similaires

  1. Recherche code vba
    Par nicogef dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/01/2014, 07h48
  2. Code vba - Enregistrement fichier
    Par panthera26 dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 12/05/2013, 21h39
  3. Pbm d'execution de code VBA sur fichier mde
    Par Aegnor dans le forum VBA Access
    Réponses: 5
    Dernier message: 30/07/2012, 15h54
  4. [XL-2007] Exécution code VBA sur fichier déja rempli
    Par Nanou84 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 19/07/2012, 14h15
  5. [Irrlicht] recherche code (lire/afficher) fichier OBJ
    Par Husqvarna dans le forum Irrlicht
    Réponses: 3
    Dernier message: 14/03/2006, 11h19

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