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.
 

chropilote

XLDnaute Nouveau
Re : Macro Date Automatique + Supprimer Fichiers

Bon, alors voila le dernier code que j'ai bidouillé :

Dans ThisWorkBooK :
Code:
Private Sub Workbook_Activate()
Call StartClock
End Sub

Dans Module 1 :
Code:
Sub StartClock()
   EtMaintenantQueVaisJeFaire
End Sub

Sub EtMaintenantQueVaisJeFaire()
[A1] = Now
[A1].NumberFormatLocal = "jj/mm/aa"
Application.OnTime Now + DateValue("00:05:00"), "NoTimeToulouse"
End Sub

Private Sub NoTimeToulouse()
[A2] = Now
[A2].NumberFormatLocal = "hh:mm:ss"
Application.OnTime Now + TimeValue("00:00:01"), "NoTimeToulouse"

If [C1] = Date And [C2] = Time Then
    Dim FS
    Set FS = CreateObject("Scripting.FileSystemObject")
    FS.Deletefolder "C:\Documents and Settings\Bureau\TEST"
    MsgBox "Macro exécutée"
    
ElseIf [C1] < Date And [C2] < Time Then

End If

End Sub

Il marche mais il y a encore 1 problème (sinon c'est moins drôle...) : La macro s'applique à toutes les feuilles du classeur mais en plus s'applique à toutes les feuilles des autres classeur Excel ouverts simultanément !!! Enfin pas toute la macro... L'heure s'applique à toutes les feuilles en "A2" mais la date elle n'est que sur la "Feuil3" de classeur en "A1"

J'ai chercher en sélectionnant une feuille, en l'activant etc... Sans résultat ! ! !

Help !

R.
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Macro Date Automatique + Supprimer Fichiers

Bonsoir à tous


Apparemment non.
Personne d'autre que moi (pour le moment en tout cas)

Comme j'ai déjà du l'écrire , on n'est pas aux pièces, ni au boulot.

Donc rien ne presse (en tout cas pour moi)

As-tu fais d'autres recherches selon les mots clés que je t'avais mis en gras dans un de mes précédents messages?

PS: Avec ton dernier code tu cherche à effacer un dossier et non plus des fichiers.

Et quel est le rapport entre A1, A2, C1 et C2 ?
(Il y a un truc que je pige pas dans ta logique)
 
Dernière édition:

chropilote

XLDnaute Nouveau
Re : Macro Date Automatique + Supprimer Fichiers

Bonsoir,

J'ai G..gler tes liens... Soit j'ai pas bien G..gler, soit j'ai encore du boulot en grand breton... Bon clairement j'ai du boulot en grand breton...

Sinon, non on n'est pas aux pièces, ni au boulot, donc rien ne presse... Non on l'est pas... Enfin... Oui et non... Comme je le disais plus haut, je passe un BTS en 3 mois alors qu'il faut 2 ans via la filière classique... Du coup le temps m'est tout de même un peu compté...

Effectivement "mon" code supprime le dossier complet... Et effectivement ce n'est pas ce que je souhaite... Je me suis fourvoyer sans même m'en apercevoir ! Braaaavo !

Pour ce qui est des cellules... Pour l'instant ça me sert à "comprendre" mon code...

Mais au final je voudrai que ni la Date/Heure Réelle, ni la Date/Heure Butoire ne soit pas visible par l'utilisateur. Pourquoi ? Pour éviter qu'un utilisateur distrait ne déplace les cellules de références, ce qui nuirai à la bonne exécution de la macro...

Donc au final j'ai assemblé un code qui marche... Mais ne fait pas tout à fait je que je voudrai... GRRR !

Exam' dans 1 mois et demi... Help !

R.
 

Staple1600

XLDnaute Barbatruc
Re : Macro Date Automatique + Supprimer Fichiers

Re

Voici un autre code que je te laisse étudier
Dis moi ce que tu comprends pas dans celui-ci
Code:
Public Sub DeleteOldTempFiles(dtCutOffDate As Date)
    
    Dim strPath As String
    Dim strFilename As String
    Dim colFiles As New Collection
    
    strPath = "C:\Temp\"
    
    'Load all the file names into a collection
    strFilename = Dir(strPath & "*.*")
    Do Until strFilename = ""
        colFiles.Add strPath & strFilename
        strFilename = Dir
    Loop
    
    'Delete them if they are older than the cutoff date
    Dim i As Long
    For i = 1 To colFiles.Count
        If FileDateTime(colFiles.Item(i)) < dtCutOffDate Then
            Kill colFiles.Item(i)
        End If
    Next i
        
End Sub
 

Staple1600

XLDnaute Barbatruc
Re : Macro Date Automatique + Supprimer Fichiers

Re

Je viens de tester cela fonctionne chez moi
Pour tester créer un dossier nommé TEMPO sur ton disque C
(et mets quelques fichiers)
puis lance la macro effacerfichiers
Les fichier seront effacés.
On peut ensuite modifier si tu veux que la date limite soit renseignée dans une cellule.
Code:
Sub effacerfichiers()
DeleteOldTempFiles "C:\TEMPO\", CDate("21/12/2012")
End Sub
VB:
Private Sub DeleteOldTempFiles(Dossier As String, dtCutOffDate As Date)
'code d'origine de : datAdrenaline
Dim strFilename As String, colFiles As New Collection
    'Load all the file names into a collection
    strFilename = Dir(Dossier & "*.*")
    Do Until strFilename = ""
        colFiles.Add Dossier & strFilename
        strFilename = Dir
    Loop
    'Delete them if they are older than the cutoff date
    Dim i As Long
    For i = 1 To colFiles.Count
        If FileDateTime(colFiles.Item(i)) < dtCutOffDate Then
            Kill colFiles.Item(i)
        End If
    Next i
End Sub
 

chropilote

XLDnaute Nouveau
Re : Macro Date Automatique + Supprimer Fichiers

Je dis pas que ton code n'est pas bon, hein !? Et encore merci pour ton aide déjà apportée !
Je dis pas non plus que tu m'a dis de le mettre ici ou la !
Et j'imagine bien que tu ne mets pas des codes qui marchent pas !

J'ai mis le premier bout dans ThisWorkBook et le reste dans un Module et (dans cette config' qui visiblement n'est pas la bonne...) ça marche pas...

Du coup peut tu me dire ou je mets quoi ?
 
Dernière édition:

chropilote

XLDnaute Nouveau
Re : Macro Date Automatique + Supprimer Fichiers

Ok... Keep Cool... Mais grosse pression en ce moment...

Alors :

Première question : je mets "Sub effacerfichiers" et "Private Sub DeleteOldTempFiles" dans un module standard ?
Deuxième question : Comment tester sans la date ? Tu bidouille la date de ton PC pour le tester ?
Troisième question : Dans "Dim i", "For i = 1" et "Next i" à quoi correspond et sert le "i" ?
 

Discussions similaires

Statistiques des forums

Discussions
312 195
Messages
2 086 079
Membres
103 112
dernier inscrit
cuq-laet