Macro Date Automatique + Supprimer Fichiers

chropilote

XLDnaute Nouveau
Bonjour,

Débutant (c'est peu dire...) en VBA, je cherche une macro permettant d'afficher automatiquement et en temps réel la date et l'heure et capable de supprimer le contenu d'un dossier "C:\Users\DossierZ" en fonction d'une date et une heure définie.

Concrètement :

Dans la feuille "DateRéelle", en "A1" je voudrai une macro qui affiche automatiquement la date et l'heure en temps réel ...

Dans la feuille "DateButoir", en "A1" je spécifie une date et une heure date butoir...

Quand la valeur de la "DateRéelle" correspond à la valeur de la "DateButoir", la macro supprime automatiquement tout le contenu du dossier "C:\Users\DossierZ"

J'ai trouvé la fonction "Kill" mais je n'arrive pas a gérer les problèmes de date, heure et égalité entre cellules...

Merci d'avance pour vos compétences !

R.
 

Staple1600

XLDnaute Barbatruc
Re : Macro Date Automatique + Supprimer Fichiers

Re


Voici un exemple de script VBS apres un petit G..gling furtif
Je te laisse le découvrir
Code:
This script will delete all files more than 14 days old that are found in any folder under a designated path. If this isn't what you need, it can be easily modified to search/delete only specific folders. See the comment near the bottom of the script for testing. 


Option Explicit 


Dim fso, dTwoWeeksAgo 


dTwoWeeksAgo = Date() - 14 
wscript.echo dTwoWeeksAgo 
Set fso = CreateObject("Scripting.FileSystemObject") 


'DirWalk("C:\") ' repeat this subroutine call with a different path to process more paths 
'DirWalk("F:\users\data\") ' like this. 
DirWalk("\\phobos\E$\ee\") ' and/or like this. 


Sub DirWalk(parmPath) 
Dim oSubDir, oSubFolder, oFile, n 


On Error Resume Next ' We'll handle any errors ourself, thank you very much 


Set oSubFolder = fso.getfolder(parmPath) 


For Each oFile In oSubFolder.Files ' look in the current dir 
If Err.Number <> 0 Then ' if we got an error, just skip this entry 
Err.Clear 
ElseIf oFile.DateLastModified < dTwoWeeksAgo Then 
Wscript.Echo "about to delete " & oFile.Path 
'''uncomment the next line when you are satisfied this script works properly 
'''fso.DeleteFile oFile.Path, True 
End If 
Next 


For Each oSubDir In oSubFolder.Subfolders 
DirWalk oSubDir.Path ' recurse the DirWalk sub with the subdir paths 
Next 


On Error Goto 0 ' Resume letting system handle errors. 


End Sub
 

Staple1600

XLDnaute Barbatruc
Re : Macro Date Automatique + Supprimer Fichiers

Re


Ce qui est bien avec le VBS, c'est qu'on peut le lancer dans du VBA (et il retombe sans avoir mal)

Pour te titiller la curiosité, ose regarder ce lien, tu devrais ne pas en sortir indemne et commencer à reviser ta position ;)

PS: Tu veux rester sur du VBA mais c'est toi qui m'a demandé la différence.
 
Dernière édition:

chropilote

XLDnaute Nouveau
Re : Macro Date Automatique + Supprimer Fichiers

OK ! je vais pas rester hermétique !
Ca "marche comment ? je tape le code (pas trop fort) dans un bloc note... Je mets le bloc note... Heu... Quelque part... et hop tous seul a la date voulue il fait ce qu'on lui demande ? Et on le lance comment a partir du VBA ?
Je viens de lire le code je vois même pas ou est le répertoire du dossier a vider !
 
Dernière édition:

chropilote

XLDnaute Nouveau
Re : Macro Date Automatique + Supprimer Fichiers

OK ! je vais pas rester hermétique !
Ca "marche comment ? je tape le code (pas trop fort) dans un bloc note... Je mets le bloc note... Heu... Quelque part... et hop tous seul a la date voulue il fait ce qu'on lui demande ? Et on le lance comment a partir du VBA ?
Je viens de lire le code je vois même pas ou est le répertoire du dossier a vider !
Pas besoin de macro
dans une cellule mettre cette formule
=MAINTENANT() et appuyez comme un dératé sur F9 toutes les secondes.
Heu... Ben non alors !
 

Staple1600

XLDnaute Barbatruc
Re : Macro Date Automatique + Supprimer Fichiers

Re

Restons donc dans VBA pour le moment:
voici une macro "crasseuse" pour afficher l'heure
Lance la macro EtMaintenantQueVaisJeFaire
Code:
Sub EtMaintenantQueVaisJeFaire()
Application.OnTime Now + TimeValue("00:00:01"), "NoTimeToulouse"
End Sub
Code:
Private Sub NoTimeToulouse()
[A1] = Time
[A1].NumberFormatLocal = "hh:mm:ss"
Application.OnTime Now + TimeValue("00:00:01"), "NoTimeToulouse"
End Sub


A tester sur un classeur vierge avec aucun autre classeur d'ouvert
 

Staple1600

XLDnaute Barbatruc
Re : Macro Date Automatique + Supprimer Fichiers

Re

Pour le script VBS, c'était juste un exemple !!! Pas une solution
Un exemple pour te donner soif, pour exciter ta curiosité.
Pour te donner l'envie d'aller quérir d'autres exemples sur le net, de chercher à les comprendre, de les tester.

Un script VBS doit s'enregistrer dans un fichier avec l'extension *.vbs

Essaie cet exemple
Copie ceci dans le bloc-note

Code:
Msgbox "Le " & Date & chr(13) &  " à " & Time
CreateObject("WScript.Shell").Popup "Houston nous avons un problème!", 1, "Module lunaire à la Terre"

Enregistres-le sur ton bureau avec ce nom Test.vbs
puis doubles-cliques dessus.
 

Staple1600

XLDnaute Barbatruc
Re : Macro Date Automatique + Supprimer Fichiers

Re


Tu as raison.
J'arrête de me disperser (Pourtant j'en suis qu'à ma 13ème bière)

Donc le code VBA pour afficher l'heure se mets dans un module standard.
(ALT+F11 puis Insertion/Module)
(Mais je te conseille d'en trouver un mieux écrit et plus abouti : il en existe des exemples sur le forum)
 

chropilote

XLDnaute Nouveau
Re : Macro Date Automatique + Supprimer Fichiers

Pardon... Je me suis mal exprimé... Je parlai de ces codes :
Code :
Sub EtMaintenantQueVaisJeFaire()
Application.OnTime Now + TimeValue("00:00:01"), "NoTimeToulouse"
End Sub
Code :
Private Sub NoTimeToulouse()
[A1] = Time
[A1].NumberFormatLocal = "hh:mm:ss"
Application.OnTime Now + TimeValue("00:00:01"), "NoTimeToulouse"
End Sub
 

Staple1600

XLDnaute Barbatruc
Re : Macro Date Automatique + Supprimer Fichiers

Re

Tu as ensuite exécuter la macro?
En faisant Outils/Macros/NOMDELAMACRO -> Exécuter

Dans NoTimeToulouse, il ya déjà du code, non?

C'est l'autre macro qu'il faut lancer.

Comme je l'expliquais dans le message #21
 
Dernière édition:

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 165
Messages
2 085 880
Membres
103 009
dernier inscrit
dede972