Enregsitrer sous en fonction de l'heure actuelle

fx62

XLDnaute Junior
Bonjour le forum,

Je viens vers vous car j'ai un problème avec ma macro d'enregistrement.

Je vous explique : j'ai créé, grâce à ce forum, une macro permettant d'enregistrer un document en fonction de la date et de l'heure actuelle. Après un clique sur une commande bouton, le document s'enregsitre sous la forme "Rapport du aaaa-mm-jj" & "poste".

Voici les différentes possibilités :
  • Entre 6h et 14h : poste = matin
  • Entre 14h et 22h : poste = après-midi
  • Entre 22h et 6h : poste = nuit
Tout se passe bien pour les postes du matin et de l'après-midi, par contre lors du poste de nuit, l'utilisateur effectue les horaires 22h-6h. Par conséquent il commence son poste le jour J et le termine le jour J+1.

Le problème est le suivant : l'utilisateur a deux possibilités :
  • soit enregistrer son rapport à 23h (par exemple) et ainsi le rapport est enregistré au jour J
  • soit enregistrer son rapport à 4h (par exemple) et dans ce cas, le rapport est enregistré au jour J+1
Pour ma part, je voudrais que dans les deux cas, le rapport s'enregistre au jour J et non au J+1.

Je joint un fichier qui sera sûrement plus explicite.
D'avance merci pour votre aide,

fx62
 

Pièces jointes

  • Test fx62.xls
    41 KB · Affichages: 50

fx62

XLDnaute Junior
Re : Enregsitrer sous en fonction de l'heure actuelle

Jean-Marcel,

Ta solution fonctionne à 50%.
C'est à dire qu'entre minuit et 6h, elle m'enregistre bien au jour J, grâce au Now-1.
Par contre entre 22h et minuit au lieu de laisser au jour J, ça passe à J-1.

Je continue de chercher de mon côté mais en tout cas merci quand même.
 

fx62

XLDnaute Junior
Re : Enregsitrer sous en fonction de l'heure actuelle

Jean-Marcel,

J'ai rajouté le chemin dans votre code mais pour autant cela ne fonctionne pas !
J'ai une erreur 1004 et la ligne suivante en jaune :
Code:
ActiveWorkbook.saveas chemin & fName, Password:="", WriteResPassword:="", ReadOnlyRecommended:= _
    False, CreateBackup:=False
Il me dit que le fichier est innacessible pourtant je n'ai pas changé le chemin d'accés !?
 

fx62

XLDnaute Junior
Re : Enregsitrer sous en fonction de l'heure actuelle

Je viens de trouver, j'ai repris votre code et spécifier quand est ce que la macro devait passer au jour J en rajoutant And CDbl(Now()) - Int(CDbl(Now)) <= 6 / 24
Code:
Sub saveas()

Dim poste

If CDbl(Now()) - Int(CDbl(Now)) >= 6 / 24 And CDbl(Now()) - Int(CDbl(Now)) <= 14 / 24 Then poste = " matin"
If CDbl(Now()) - Int(CDbl(Now)) >= 14 / 24 And CDbl(Now()) - Int(CDbl(Now)) <= 22 / 24 Then poste = " après-midi"
If CDbl(Now()) - Int(CDbl(Now)) >= 22 / 24 Or CDbl(Now()) - Int(CDbl(Now)) <= 6 / 24 Then poste = " nuit"

Application.DisplayAlerts = False

chemin = "C:\Documents and Settings\wngetn3\Desktop\test_fx62\"

If poste = " nuit" And CDbl(Now()) - Int(CDbl(Now)) <= 6 / 24 Then
    fName = "Rapport" & " du " & Format(Now - 1, "yyyy-mm-dd") & poste & ".xls"
Else
    fName = "Rapport" & " du " & Format(Now, "yyyy-mm-dd") & poste & ".xls"
End If

ActiveWorkbook.saveas chemin & fName, Password:="", WriteResPassword:="", ReadOnlyRecommended:= _
False, CreateBackup:=False

End Sub
Cela fonctionne pour l'instant, je reviendrais vers vous en cas de problème.
Encore merci,
fx62
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 489
Messages
2 088 854
Membres
103 975
dernier inscrit
denry