Fermer excel à une date et heure précise

Résolu
viret1290 Messages postés 146 Statut Membre -  
gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

J'aimerai faire que mon fichier Excel 2010 se ferme automatiquement à une date et heure précise.

comment dois je faire par macro.

Si c'est possible merci de votre aide.

Lionel

4 réponses

  1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    Bonjour,

    C'est relativement simple, il te suffit de lancer cette macro qui va vivre sa vie jusqu'à l'heure choisie.
    Public Sub fermer()
        Application.OnTime Now + TimeValue("00:00:01"), "fermer"
        If Now > DateValue("18/01/2016") + TimeValue("22:14:01") Then Application.Quit              ' terminé
    End Sub
    

    Tu choisis bien sûr le jour et l'heure qui peuvent être mis en paramètre de la procédure par exemple.
    Tu peux la tester en mettant une heure assez proche.
    0
  2. viret1290 Messages postés 146 Statut Membre 2
     
    Bonjour,

    merci mais,

    A la place de la date j'aimerai regarder si c'est lundi, mardi, mercredi, jeudi, vendredi ou samedi.
    car chaque jour le programme doit se fermer à une autre heure.

    merci d'avance
    0
    1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
       
      Bonjour,

      MAIS...
      Lorsque l'on pose une question et que l'on veut une réponse précise, il faut donner clairement et exhaustivement les prémices.
      J'ai répondu précisément à
      "se ferme automatiquement à une date et heure précise"
      Tu veux autre chose que ce que tu as demandé alors formule précisément ce que tu veux et tu auras la réponse adaptée, ce que l'on ne peux absolument pas faire avec "car chaque jour le programme doit se fermer à une autre heure"
      0
  3. viret1290 Messages postés 146 Statut Membre 2
     
    merci j'ai trouvé le code suivant

    Sub auto_open()
    Dim heure$

    Select Case UCase(Feuil2.Cells(1, 1))
    Case "LUNDI"
    heure = "07:05:00" 'ici adapter l'heure
    Application.OnTime EarliestTime:=TimeValue(heure), Procedure:="fermeTout"
    Case "MARDI"
    heure = "09:40:00" 'ici adapter l'heure
    Application.OnTime EarliestTime:=TimeValue(heure), Procedure:="ferme"
    Case "MERCREDI"
    heure = "09:25:00" 'ici adapter l'heure
    Application.OnTime EarliestTime:=TimeValue(heure), Procedure:="ferme"
    Case "JEUDI"
    heure = "09:25:00" 'ici adapter l'heure
    Application.OnTime EarliestTime:=TimeValue(heure), Procedure:="ferme"
    Case "VENDREDI"
    heure = "09:25:00" 'ici adapter l'heure
    Application.OnTime EarliestTime:=TimeValue(heure), Procedure:="ferme"
    Case "SAMEDI"
    heure = "09:25:00" 'ici adapter l'heure
    Application.OnTime EarliestTime:=TimeValue(heure), Procedure:="ferme"
    Case "DIMANCHE"
    heure = "09:25:00" 'ici adapter l'heure
    Application.OnTime EarliestTime:=TimeValue(heure), Procedure:="ferme"
    End Select
    End Sub
    0
  4. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    Bonjour,

    Tu peux l'avoir en plus réduit :
    Private Sub Workbook_Open()
    Dim heures
    ' heures arrêt  lundi       mardi       mercredi    jeudi       vendredi    samedi      dimanche
    heures = Array("07:05:00", "10:52:00", "07:05:00", "07:05:00", "09:25:00", "07:05:00", "09:25:00")
    Application.OnTime EarliestTime:=TimeValue(heures(Weekday(Date, 2) - 1)), Procedure:="ferme"
    End Sub
    

    et il faut mettre la procédure ferme dans un module
    Public Sub ferme()
        Application.Quit
    End Sub
    
    0