Vérification menu déroullant en fonction de l'heure actuelle.

fx62

XLDnaute Junior
Bonjour à tous,

Cela fait quelques jours que je navigue sur internet à la recherche d'une solution, malheureusement sans succés.

Mon problème est le suivant, j'aimerais pouvoir vérifier le contenu d'un menu déroulant en fonction de l'heure actuelle.
J'ai créé une macro d'enregistrement (elle fonctionne) liée à une commande bouton, je voudrais que ce même bouton puisse être utilisé pour vérifier un menu déroulant.
Je vous décris la situation : l'utilisateur devra renseigner dans le rapport (excel) s'il est actuellement en poste du matin, de l'après-midi ou de la nuit. Puis remplir son rapport et cliquer sur le bouton pour l'enregistrer.

Voici les horaires de poste :
Poste du matin = 5h - 13h​
Poste de l'après-midi = 13h - 21h​
Poste de nuit = 21h - 5h​

Si je prend un exemple : il est 15h, l'ouvrier est donc de l'après-midi mais il renseigne par erreur qu'il est du matin. Je voudrais afficher une msgbox pour dire que le poste renseigné est incorrecte et ainsi empecher la sauvegarde du classeur tant que le champs n'aura pas été modifier.

J'espère avoir été clair. Je joint un extrait de mon fichier qui parlera certainement mieux.

Merci d'avance.
fx62.
 

Pièces jointes

  • Rapport.xls
    28 KB · Affichages: 53
  • Rapport.xls
    28 KB · Affichages: 54
  • Rapport.xls
    28 KB · Affichages: 53

fx62

XLDnaute Junior
Re : Vérification menu déroullant en fonction de l'heure actuelle.

Bonjour JCGL, pierrejean, le forum,

Je reviens vers vous, après plusieurs mois, car j'ai un problème avec l'enregistrement lors du poste de nuit.
En effet, lorsque l'utilisateur est en poste de nuit, il 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 :
  • enregistrer son rapport à 23h (par exemple) et ainsi le rapport est enregistré au jour J
  • 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.

Pour rappel voici le code utilisé :
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:\...\Enregistrement des rapports\"
fName = "Rapport" & " du " & Format(Now, "yyyy-mm-dd") & poste & ".xls"

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

End Sub
Cela est-il possible ?

Merci d'avance pour votre aide,

fx62

EDIT : je vais déplacer ce dernier post, celui-ci ne me semble pas être à sa place étant donné que dans cette discussion nous parlions de menu déroullant et non d'enregsitrement.
Désolé pour le dérangement.
fx62
 
Dernière édition:

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 413
Messages
2 088 199
Membres
103 763
dernier inscrit
p.michaux