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

Bonsoir à tous

Pourquoi passer par Excel pour cela?
Un script VBS couplé au planificateur de tâches pourrait faire l'affaire
(Voir un bon vieux batch MSDOS avec un DIR et les bonnes options: -> plein d'exemples dispo sur le net )

Sinon si VBA oblige
Date, Time et Application.OnTime pourraient devenir tes alliés pou résoudre ton problème.

Un plus pour t'aider serait de voir ton code VBA déjà écrit à ce stade.
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Macro Date Automatique + Supprimer Fichiers

RE


Dans ce cas clic-droit sur le mot énigmatique et Rechercher avec G..gle
La curiosité n’empêche pas la digestion et n'altère pas le sommeil.

Et pour ce qui est de VBA: la touche F1 est ton amie pour la vie ;)
 

chropilote

XLDnaute Nouveau
Re : Macro Date Automatique + Supprimer Fichiers

Disons que je comprends la signification basique des mots "Date, Time et Application.OnTime" soit "Date, Heure et FaisCa.A_Telle_Heure" ou quelque chose du genre... Mais de la a "structurer" une macro comme je cherche il y a (pour moi) un univers voir 2 !
 

Staple1600

XLDnaute Barbatruc
Re : Macro Date Automatique + Supprimer Fichiers

Re [EDITION2=au fait Bienvenue sur le forum , j'avais zappé ta date d'inscription[/EDITION2]

Méfies-toi de moi ;)
J'adore inciter les débutants à mettre les mains dans le cambouis et à mouiller la chemise.
Donc as-tu un début de code VBA? Que je vois par ou tu as commencé ;)
Premier réflexe: toujours faire ALT+F11 puis F1 chaque matin (ou quand tu cherches à écrire une macro)
Tu as bien une ébauche de macro, non ? Ou tu veux du tout -cuit ?

EDITION1: Je viens d'appuyer sur F1 et avec ce j'ai trouvé, j'ai fait ce petit code (Lance la macro a)
Tout ceci pour dire : Essaie de commencer par faire une ébauche de macro avec les infos que tu glaneras sur le net ou dans l'aide puis reviens ici lorsque tu rencontreras des difficultés.
Ou attends qu'un autre membre du forum qui pense autrement te livre un code clé en mains ;)
(Les deux approches coexistent sur le forum ;) )
Code:
Sub a()
'Cet exemple montre comment exécuter my_Procedure dans 15 secondes.
Application.OnTime Now + TimeValue("00:00:15"), "my_Procedure"
End Sub
Code:
Sub my_Procedure()
MsgBox Date
MsgBox Time
End Sub
 
Dernière édition:

chropilote

XLDnaute Nouveau
Re : Macro Date Automatique + Supprimer Fichiers

Je suis partisan/pratiquant du "mettre les mains dans le cambouis" !!!
Mais la suis un peu dépasser et avec un emploi du temps assez lourd à gérer...
Un BTS en 3 mois ça demande pas mal d'énergie... Du coup si pour une fois j'ai du "semi-tout-cuit" ça m'arrangerai grandement !

J'ai déjà une base pour l'heure auto... mais pas pour la date auto... Dans la macro heure (il y a une option d'affichage type horloge à aiguille mais qui ne m'intéresse pas et qui peut virer...)

Et nada pour le reste...

Macro Horloge :

Dans "Module 1" :

Option Explicit
Dim NextTick

Sub StartClock()
UpdateClock
End Sub

Sub StopClock()
' Cancels the OnTime event (stops the clock)
On Error Resume Next
Application.OnTime NextTick, "UpdateClock", , False
End Sub

'Sub cbClockType_Click()
' Hides or unhids the clock
' With ThisWorkbook.Sheets("Clock")
' If .DrawingObjects("cbClockType").Value = xlOn Then
' .ChartObjects("ClockChart").Visible = True
' Else
' .ChartObjects("ClockChart").Visible = False
' End If
' End With
'End Sub

Sub UpdateClock()
' Updates the clock that's visible
Dim Clock As Chart
Set Clock = ThisWorkbook.Sheets("Clock").ChartObjects("ClockChart").Chart

If Clock.Parent.Visible Then
' ANALOG CLOCK
Const PI As Double = 3.14159265358979
Dim CurrentSeries As Series
Dim s As Series
Dim x(1 To 2) As Variant
Dim v(1 To 2) As Variant

' Hour hand
Set CurrentSeries = Clock.SeriesCollection("HourHand")
x(1) = 0
x(2) = 0.5 * Sin((Hour(Time) + (Minute(Time) / 60)) * (2 * PI / 12))
v(1) = 0
v(2) = 0.5 * Cos((Hour(Time) + (Minute(Time) / 60)) * (2 * PI / 12))
CurrentSeries.XValues = x
CurrentSeries.Values = v

' Minute hand
Set CurrentSeries = Clock.SeriesCollection("MinuteHand")
x(1) = 0
x(2) = 0.8 * Sin((Minute(Time) + (Second(Time) / 60)) * (2 * PI / 60))
v(1) = 0
v(2) = 0.8 * Cos((Minute(Time) + (Second(Time) / 60)) * (2 * PI / 60))
CurrentSeries.XValues = x
CurrentSeries.Values = v

' Second hand
Set CurrentSeries = Clock.SeriesCollection("SecondHand")
x(1) = 0
x(2) = 0.85 * Sin(Second(Time) * (2 * PI / 60))
v(1) = 0
v(2) = 0.85 * Cos(Second(Time) * (2 * PI / 60))
CurrentSeries.XValues = x
CurrentSeries.Values = v
Else
' DIGITAL CLOCK
ThisWorkbook.Sheets("Clock").Range("DigitalClock").Value = CDbl(Time)
End If

' Set up the next event one second from now
NextTick = Now + TimeValue("00:00:01")
Application.OnTime NextTick, "UpdateClock"
End Sub

Dans "ThisWorkBook" :

Private Sub Workbook_Open()
Call StartClock
End Sub


Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call StopClock
End Sub
 

Staple1600

XLDnaute Barbatruc
Re : Macro Date Automatique + Supprimer Fichiers

Re


Tu pouvais pas publier ton code dans ton premier message, palsambleu !!! ;)
Ca m'aurait éviter d'écrire toute cette prose cambouisque;)

Bon maintenant qu'on est sur de bonnes bases, on va pouvoir commencer ;)... par du formatage

EDITION: Ton code ressemble à tout sauf à du VBA de débutant ;)
Code:
Option Explicit
Dim NextTick

Sub StartClock()
UpdateClock
End Sub

Code:
Sub StopClock()
' Cancels the OnTime event (stops the clock)
On Error Resume Next
Application.OnTime NextTick, "UpdateClock", , False
End Sub

Code:
'Sub cbClockType_Click()
' Hides or unhids the clock
' With ThisWorkbook.Sheets("Clock")
' If .DrawingObjects("cbClockType").Value = xlOn Then
' .ChartObjects("ClockChart").Visible = True
' Else
' .ChartObjects("ClockChart").Visible = False
' End If
' End With
'End Sub

VB:
Sub UpdateClock()
' Updates the clock that's visible
Dim Clock As Chart
Set Clock = ThisWorkbook.Sheets("Clock").ChartObjects("ClockCh art").Chart

If Clock.Parent.Visible Then
' ANALOG CLOCK
Const PI As Double = 3.14159265358979
Dim CurrentSeries As Series
Dim s As Series, x(1 To 2) As Variant,v(1 To 2) As Variant
' Hour hand
Set CurrentSeries = Clock.SeriesCollection("HourHand")
x(1) = 0
x(2) = 0.5 * Sin((Hour(Time) + (Minute(Time) / 60)) * (2 * PI / 12))
v(1) = 0
v(2) = 0.5 * Cos((Hour(Time) + (Minute(Time) / 60)) * (2 * PI / 12))
CurrentSeries.XValues = x
CurrentSeries.Values = v
' Minute hand
Set CurrentSeries = Clock.SeriesCollection("MinuteHand")
x(1) = 0
x(2) = 0.8 * Sin((Minute(Time) + (Second(Time) / 60)) * (2 * PI / 60))
v(1) = 0
v(2) = 0.8 * Cos((Minute(Time) + (Second(Time) / 60)) * (2 * PI / 60))
CurrentSeries.XValues = x
CurrentSeries.Values = v
' Second hand
Set CurrentSeries = Clock.SeriesCollection("SecondHand")
x(1) = 0
x(2) = 0.85 * Sin(Second(Time) * (2 * PI / 60))
v(1) = 0
v(2) = 0.85 * Cos(Second(Time) * (2 * PI / 60))
CurrentSeries.XValues = x
CurrentSeries.Values = v
Else
' DIGITAL CLOCK
ThisWorkbook.Sheets("Clock").Range("DigitalClock") .Value = CDbl(Time)
End If
' Set up the next event one second from now
NextTick = Now + TimeValue("00:00:01")
Application.OnTime NextTick, "UpdateClock"
End Sub

Dans "ThisWorkBook" :
Code:
Private Sub Workbook_Open()
Call StartClock
End Sub
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call StopClock
End Sub
 
Dernière édition:

chropilote

XLDnaute Nouveau
Re : Macro Date Automatique + Supprimer Fichiers

Quel différence (concrètement) entre du VBA et VBS ?

Edition : Ce n'est pas mon code... malheureusement...

Types de fichiers : TOUS... Word, Excel...
Répertoire : C:\Users\Raf\Desktop\Nouveau dossier
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Macro Date Automatique + Supprimer Fichiers

Re

Le VBS s’exonère d'Excel s'écrit dans le bloc-notes et sent bon (surtout sur les PC fabriqués avant 2003)
C'est un cousin de VBA pour ainsi dire
De plus il sait lire les proprités des fichiers (comme LastModifiedDate) et surtout tu trouveras sur le net plein de scripts pret à l'emploi pour ce ce que tu veux faire.


PS: Oui je sais , tu n'as pas vu le lien dans mon précédent message ;)
 

chropilote

XLDnaute Nouveau
Re : Macro Date Automatique + Supprimer Fichiers

Je viens de voir ton lien ;)

Heu... J'aimerai autant rester sur du VBA... Je maitrise pas mais ça commence à rentrer !

Du coup dans ce code je n'ai besoin que de la partie "Affiche l'heure dans X cellule"...
Mais il commence ou et fini ou exactement ?
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 895
Messages
2 093 385
Membres
105 715
dernier inscrit
Yoenai