fermer classeur excel un jour précis

ychc

XLDnaute Occasionnel
Bonjour à tous,

Je cherche depuis quelques temps un code qui me permettrais de fermer par
exemple un classeur tous les samedi à 12:00.

Je suis sur un bout de code que j'ai pu trouver ici et là, que je ne maîtrise pas beaucoup, mais je pense être sur le bon chemin.

Peut être que je me trompe complètement.

J'ai mis dans le workbook:

Code:
Private Sub Workbook_Open()

Dim heures
heures = Array("12:00:00")

Application.OnTime EarliestTime:=TimeValue(heures(WeekdayName(Date, 2) - 1)), Procedure:="ferme"
End Sub

Et ca dans le module:
Code:
Public Sub ferme()
Application.Save
Application.Quit
End Sub

Si quelqu'un peut me mettre sur le bon chemin.

Merci
 

youky(BJ)

XLDnaute Barbatruc
Re : fermer classeur excel un jour précis

Bonjour ychc,

Code:
Private Sub Workbook_Open()
Dim myjour As Date
'si c'est samedi on ajoute 7 jours
If Weekday(Date) = 7 Then
myjour = CDate(Date + 7 & " 12:00:00")
GoTo fin
End If


'si pas samedi on ajoute
jourenplus = 7 - Weekday(Date)
myjour = Date + jourenplus
myjour = CDate(myjour & " 12:00:00")
fin:
Application.OnTime myjour, "ferme"
End Sub

Bruno
 

ychc

XLDnaute Occasionnel
Re : fermer classeur excel un jour précis

Bonsoir Youky,

Et merci de t’intéresser à mon problème.
Bon voilà, j'ai bien essayer de comprendre, mais pas moyen de faire fonctionner le code pour aujourd'hui lundi.

Si j'ai comprend bien le "If Weekday(Date) = 7 Then" c'est quand le 1er jour de la semaine est le dimanche.

Ensuite si je veux faire le test pour aujourd'hui lundi, je dois passer au deuxième bloc de ton code.
Et c'est là que je coince, si pas samedi on ajoute...1 pour passer du dimanche au lundi?

Voici mon exemple et si tu as le temps de m'aider je te remercie d'avance.

Bonne soirée à tous.
 

Pièces jointes

  • fermejour precis.xlsm
    14.8 KB · Affichages: 30

youky(BJ)

XLDnaute Barbatruc
Re : fermer classeur excel un jour précis

Re:
explications
weekday(date) =7 'c'est que c'est un samedi
le dimanche c'est 1
le lundi c'est 2 et hop le samedi c'est 7
donc dans ma macro si on ouvre sur un jour 7 c'est un samedi, j'ajoute 7 jours + l'heure et on va à.... fin:
si c'est pas un samedi comme aujourd'hui lundi weekday renvoie 2 donc je calcul 7 -2= 5
Je rappel nous sommes lundi 01/02/16 et cette date + 5 = le 06/02 c'est bien samedi prochain
La macro peut fonctionner telle quelle comme je te l'ai donnée.
Bruno
 

ychc

XLDnaute Occasionnel
Re : fermer classeur excel un jour précis

Bonjour Bruno,

Merci pour les explications très claires de ton code.

Hier, je ne comprenais pas le " si pas samedi", je pensais que tu voulais dire par là
de modifier la fermeture un autre jour que le samedi.

Aujourd'hui, j'ai réussi à tester le code avec une fermeture ce mercredi.

Merci pour ta patience et bonne journée à tous.
 

Discussions similaires

Statistiques des forums

Discussions
311 734
Messages
2 082 020
Membres
101 872
dernier inscrit
Colin T