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

Il faut mettre le code VBA dans ThisWorkBook
et dans une procédure WorkBook_Open()
mais je te conseille ne pas utiliser telle quelle ma macro qui ne l'oublie pas est crasseuse.
Utilises plutôt un code plus abouti que tu devrais trouver en cliquant sur la loupe en haut à droite.
mot-clé:
chronometre
afficher heure
horloge excel

Enfin n'hésites pas à G..gler en langue anglaise pour les exemples VBS
vbscript delete file older than
vbscript delete file older than x days
etc... le choix est vaste et riche.
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Macro Date Automatique + Supprimer Fichiers

Re

Pourquoi n'essaies-tu pas?!!?
Tu le sauras directement en testant, non !!

La curioisité toujours et encore ! Ose jeune padawan, ose et resose.

Sauf que ... la macro actualisera la date toutes les secondes.
Ce qui avouons le est un peu "couillon", non ? ;)

PS: J'ai ajouté des infos dans l'édition de mon précédent message.
 
Dernière édition:

chropilote

XLDnaute Nouveau
Re : Macro Date Automatique + Supprimer Fichiers

Yep ! Ca marche !
Sub EtMaintenantQueVaisJeFaire2()
Application.OnTime Now + DateValue("01:00:00"), "NoTimeToulouse2"
End Sub

Private Sub NoTimeToulouse2()
[A2] = Date
[A2].NumberFormatLocal = "jj/mm/aa"
Application.OnTime Now + DateValue("01:00:00"), "NoTimeToulouse2"
End Sub

Et comme ça ca doit changer la date toutes les heures ! C'est bien ça ?
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Macro Date Automatique + Supprimer Fichiers

Re

Essaies plutot comme ceci (bien que ce soit toujours crasseux)
Code:
Sub EtMaintenantQueVaisJeFaireII()
[A1] = Date
Application.OnTime Now + TimeValue("00:00:01"), "NoTimeToulouse"
End Sub
Code:
Private Sub NoTimeToulouseII()
[A2] = Time
[A2].NumberFormatLocal = "hh:mm:ss"
Application.OnTime Now + TimeValue("00:00:01"), "NoTimeToulouse"
End Sub
 

Staple1600

XLDnaute Barbatruc
Re : Macro Date Automatique + Supprimer Fichiers

Re

bah oui juste ces deux codes pour afficher la date et l'heure.

Pour le reste, je pense t'avoir tendu assez de perches pour que tu saches quoi faire (après un dodo salvateur)
En un mot comme en cent:
Be curious and D.I.Y !

(Relis mes messages précédents notamment ceux qui t'invitent à G..gler ou à "louper" sur XLD ;) )
Ce que tu cherches existes déjà sur le vaste web (que ce soit en VBA ou en VBS)
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Macro Date Automatique + Supprimer Fichiers

Re


Allez pour te convaincre de ce je viens d'écrire dans mon précédent message
Je viens de G..gler et 5 secondes plus tard je te copie/colle ceci

Code:
Option Explicit
Sub Delete_Old()
Dim A
Dim Dir_Path As String
Dir_Path = "ICINOMDUDOSSIERATRAITER"
Dim Masq_File, DIR_Result
Dim MyMONTH As String
'------------ LOOK IF ROOT  DIRECTORY  EXISTS
    Masq_File = Dir_Path & "\" & "*.*"
    DIR_Result = Dir(Masq_File, vbNormal)        '  Init  Dir_Result,  We  start  with only files
    While (DIR_Result <> "")
'------------   FILES EXIST   -----------------
        MyMONTH = Mid(DIR_Result, 15, 2) * 1
        A = Month(Date) - 1
        If (MyMONTH = Month(Date) - 1) Then
            Kill Dir_Path & "\" & DIR_Result        '   TO  REMOVE  the  FILE
        End If
        DIR_Result = Dir
    Wend
End Sub

PS: Tu me diras: Pourquoi ne pas avoir copié/collé ceci dès le départ ?
Bah oui Hein Pourquoi !!!
Bah pour le plaisir de deviser avec toi et pour le plaisir et le bonheur du cambouis pardi !!!
 
Dernière édition:

chropilote

XLDnaute Nouveau
Re : Macro Date Automatique + Supprimer Fichiers

Salut,

Bon, pour ce qui est de l'heure et de la date, ça marche comme je veux... Sauf que la macro s'applique a toutes les feuilles du classeur... Je vais gratter ça...

Par contre dans le dernier code que tu propose, j'ai repérer la partie qui gère la "datation"... Mais si je comprend bien le code c'est plutôt quelque chose de cyclique (tout les mois, tout les X...)

Pour mon utilisation, ça ne sera pas le cas... La date butoir sera définie par mais soin est pourra varier selon les besoins...
Je vais essayé de bidouiller la partie :

Dim MyMONTH As String
'------------ LOOK IF ROOT DIRECTORY EXISTS
Masq_File = Dir_Path & "\" & "*.*"
DIR_Result = Dir(Masq_File, vbNormal) ' Init Dir_Result, We start with only files
While (DIR_Result <> "")
'------------ FILES EXIST -----------------
MyMONTH = Mid(DIR_Result, 15, 2) * 1
A = Month(Date) - 1
If (MyMONTH = Month(Date) - 1) Then

Je pense que c'est la le coeur du ch'milblique... Mais ça reviens un peu à faire un puzzle sans avoir vu l'image finale !

Notement ça :

MyMONTH = Mid(DIR_Result, 15, 2) * 1
A = Month(Date) - 1
If (MyMONTH = Month(Date) - 1) Then
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 913
Membres
101 837
dernier inscrit
Ugo