XL 2010 afficher une alerte si un pompier depasse les 24H de garde

Dranreb

XLDnaute Barbatruc
Bonjour.
On devrait pouvoir signaler juste les derniers en trop par des MeFC s'appuyant sur les formules un peu plus courtes installées par cette macro :
VB:
Sub Dran()
[E13:E250].FormulaR1C1 = "=AND(" & ExisteDans(2, 2) & "," & ExisteDans(2, 3) & "," & ExisteDans(2, 4) & ")*1" _
                & vbLf & "+AND(" & ExisteDans(3, 2) & "," & ExisteDans(3, 3) & "," & ExisteDans(3, 4) & ")*2" _
                & vbLf & "+AND(" & ExisteDans(4, 2) & "," & ExisteDans(4, 3) & "," & ExisteDans(4, 4) & ")*4"
End Sub
Private Function ExisteDans(ByVal ColQuoi As Long, ByVal ColOù As Long) As String
ExisteDans = "ISNUMBER(MATCH(RC" & ColQuoi & ",OFFSET(R" & IIf(ColOù >= ColQuoi, "[-8]C" & ColOù & ":R[-3]C", "C" & ColOù & ":R[5]C") & ColOù & ",-MOD(ROW()-5,8),0),0))"
End Function
Format de nombre personnalisé :
Code:
[>0]"+ de 24h";
upload_2017-1-28_12-37-52.png

Remarque: La Sub Dran indiquée au début installe en E13, propagé sur 238 lignes :
Code:
=ET(ESTNUM(EQUIV($B13;DECALER($B5:$B10;-MOD(LIGNE()-5;8);0);0));ESTNUM(EQUIV($B13;DECALER($C5:$C10;-MOD(LIGNE()-5;8);0);0));ESTNUM(EQUIV($B13;DECALER($D5:$D10;-MOD(LIGNE()-5;8);0);0)))*1
+ET(ESTNUM(EQUIV($C13;DECALER($B13:$B18;-MOD(LIGNE()-5;8);0);0));ESTNUM(EQUIV($C13;DECALER($C5:$C10;-MOD(LIGNE()-5;8);0);0));ESTNUM(EQUIV($C13;DECALER($D5:$D10;-MOD(LIGNE()-5;8);0);0)))*2
+ET(ESTNUM(EQUIV($D13;DECALER($B13:$B18;-MOD(LIGNE()-5;8);0);0));ESTNUM(EQUIV($D13;DECALER($C13:$C18;-MOD(LIGNE()-5;8);0);0));ESTNUM(EQUIV($D13;DECALER($D5:$D10;-MOD(LIGNE()-5;8);0);0)))*4
VB:
Feuil1.[E13:E250].FormulaR1C1 = _
"=AND(ISNUMBER(MATCH(RC2,OFFSET(R[-8]C2:R[-3]C2,-MOD(ROW()-5,8),0),0)),ISNUMBER(MATCH(RC2,OFFSET(R[-8]C3:R[-3]C3,-MOD(ROW()-5,8),0),0)),ISNUMBER(MATCH(RC2,OFFSET(R[-8]C4:R[-3]C4,-MOD(ROW()-5,8),0),0)))*1
+AND(ISNUMBER(MATCH(RC3,OFFSET(RC2:R[5]C2,-MOD(ROW()-5,8),0),0)),ISNUMBER(MATCH(RC3,OFFSET(R[-8]C3:R[-3]C3,-MOD(ROW()-5,8),0),0)),ISNUMBER(MATCH(RC3,OFFSET(R[-8]C4:R[-3]C4,-MOD(ROW()-5,8),0),0)))*2
+AND(ISNUMBER(MATCH(RC4,OFFSET(RC2:R[5]C2,-MOD(ROW()-5,8),0),0)),ISNUMBER(MATCH(RC4,OFFSET(RC3:R[5]C3,-MOD(ROW()-5,8),0),0)),ISNUMBER(MATCH(RC4,OFFSET(R[-8]C4:R[-3]C4,-MOD(ROW()-5,8),0),0)))*4"
 
Dernière édition:

Meloman

XLDnaute Occasionnel
Bonjour JBARBE Danreb et JP14 je tenais encore à vous remercier à tous les 2 Jbarbe j'ai tester ton fichier le soucis c'est qu'il m'affiche +24h alors exemple rop à fais que 24h il à été l’après midi en coupure puis reprend le soir comme y a eu la coupure de l’après midi il ne fait pas plus de 24h il est juste dans les clous si il avais été l’après midi du 02 janvier la oui il aurait fais plus de 24h

JP14 j'ai tester et essayer de comprendre ton fichier et au final avec ton approche sa m'a permis arrivée à mes fin j'ai put même faire en sorte avoir la liste des agent dépassant l'horaire l'égale il est vrais au début ajouter un onglet supplémentaire me plaisais pas plus que sa mais en utilisant une macro pour masquer et afficher l'onglet et un autre pour importer la liste des nom en colonne A je suis satisfait.


en tous cas un grand merci à vous deux pour votre implication dans mon projet sa va bien m'aider à prévoir éventuel erreur je vous remercie tous
 

JBARBE

XLDnaute Barbatruc
Bonjour à tous,
Je n'y comprends plus rien !
D'une part tu nous donne une réponse tardive, d'autre part dans ton post #9 tu nous donne comme exemple ce que j'ai fait ( coupure l'aprés-midi prit en compte ) ( voir image de ton fichier)
Mes posts #16 & #17 étaient bons ( sans réponse )
Demande si le post #19 ( faux) est bon sans réponse !
Tu me demande des formules ( c'est ce que j'ai fait) sans réponse !
Pourquoi ce silence pendant longtemps sans réponse et ne pas avoir donner une réponse pour la solution de Dranreb !!!!
Désolé mais c'est du n'importe quoi !
Franchement, je regrette d'avoir consacré tant de temps sur ton fichier !
Je te joins maintenant le bon fichier qui était déjà fait
bonne journée à tous !
 

Fichiers joints

Dernière édition:

Meloman

XLDnaute Occasionnel
Re à tous Jbarre ce que tu m'a envoyer correspond bien à ma recherche si je t'ai pas donner de réponse c'est que le week end j'ai pas internet car je travail qu'a la caserne. pour moi c'est pas une perte de temps ce que tu as fait car il m'a été utile c'est juste on c'était mal compris et pour daneb je viens de prendre connaissance de ce qu'il à écrit mais j'ai pas tous compris.

si je donne des réponse tardive c'est simplement entre les interventions et le moment ou je travail dessus je suis pas toujours maitre de mon temps et j'en suis vraiment désoler croyez moi en tous cas merci pour votre aide à tous
 

JBARBE

XLDnaute Barbatruc
Re,
Bon, j'ai compris et j'admire le travail des pompiers que je récompense en fin d'année avec leurs calendriers !
Mais bon sang, ce que je n'avais pas compris et que je n'arrive pas à comprendre c'est qu'il suffit seulement d'une matinée, d'un après-midi ou d'une nuit de pause pour reprendre le taf et repartir !
Chapeau Messieurs les pompiers !
Bonne journée quand même malgré tout !
 

Meloman

XLDnaute Occasionnel
re en fait c'est exactement sa là on parle de pompier volontaire pas pro les volontaire doivent respecter un temps de repos de 6heure évidement on essais de faire en sorte que ce soit plus mais des fois il y a pas le choix on parle plus en terme de garde que d'heure réellement. pas plus de 3 Garde 1 Garde de jour c'est 6 heures dans une journée il y en à 2 sachant que la garde de nuit c'est 12h sa nous fait 24h en tous cas merci de ton aide précieuse
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas