Le poste selon plage horaire

Résolu
Liores -  
Raymond PENTIER Messages postés 58988 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je traite des données de type date dans la cellule A1 extraite d'un logiciel.

Je souhaite déterminer selon l'heure si je suis en P1 (5h00 à 13h00), en P2 (13h00 à 21h00) ou en P3 (21h00 à 05h00). (C'est le mot que je dois ressortir dans la cellule A4)

En B1 et C1 j'ai juste un =A1 avec un format de cellule différent pour en ressortir l'heure et le jour de semaine.

Je me casse les dents là dessus depuis un petit moment.

Mon code VBA :

 
Sub TypeDePoste()

If Range("B2") > "06:00" And Range("B2") < "14:00" Then
Range("D2") = "P1"
ElseIf Range("B2") > "14:00" And Range("B2") < "22:00" Then
Range("D2") = "P2"
Else
Range("D2") = "P3"


End If

End Sub

Le problème est que mon code ne ressort que "P3". Je pense donc qu'il ne fait pas grand chose en amont...
J'aimerais également que cela se fasse sur toutes les lignes. J'ai un doute sur la manière de procéder. Mais je cherche une solution dès la fin de ce post.

Merci d'avance ;)

3 réponses

via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746
 
Bonjour Liores

1) tu dis avoir des données de type date en A1 et ta macro va chercher du texte, qu'elle ne trouve pas forcément

2) pourquoi passer par une macro alors qu'une simple formule en D1 suffit et peut être ensuite étirée en dessous
formule du style :
=SI(ET(HEURE(A1)>5;HEURE(A1)<=13);"P1";SI(ET(HEURE(A1)>13;HEURE(A1)<=21);"P2";"P3"))

Cdlmnt
Via
1
Liores
 
Wow!

Magnifique ca fait parfaitement le travail. Je n'ai pas réussi à faire la même chose.

Merci beaucoup !!
0
Raymond PENTIER Messages postés 58988 Date d'inscription   Statut Contributeur Dernière intervention   17 353
 
Excellente formule, qu'on peut même encore simplifier :
=SI(HEURE(A1)<5;"P3";SI(HEURE(A1)<13;"P1";SI(HEURE(A1)<21;"P2"; "P3")))


C'est bien, la retraite ! Surtout aux Antilles ... :-) 
Raymond (INSA, AFPA, CF/R)
0