goldfinger13
XLDnaute Occasionnel
bonsoir à toutes et à tous,
je rencontre une difficulté en travaillant sur des heures et très franchement je ne suis pas du tout sur de la formule ce qui est sûr c'est qu'elle buggue et je ne m'en sors pas
en fait j'ai 4 conditions
le résultat étant attendu en cellule Q2
si la valeur de la cellule J2 est = 0 sanction "pas flashé"
si valeur J2 est supérieur ou égal à N2 et inférieur ou égal à P2 sanction "RAS"
si J2 est inférieur à N2 sanction "trop tôt"
si J2 est supérieur à P2 sanction "trop tard"
j'ai bien traduit cela par une "simple formule" qui fonctionne:
Mais compte tenu que j'ai plus de 10000 lignes a traiter et très régulièrement je souhaitais automatiser la tache en VBA
l'enregistreur de macro ne veut pas m'aider il refuse carrément d'enregistrer la chose
j'ai tenté de traduire de cette manière mais ;(
si vous pouviez m'aider j'en serais ravi
je rencontre une difficulté en travaillant sur des heures et très franchement je ne suis pas du tout sur de la formule ce qui est sûr c'est qu'elle buggue et je ne m'en sors pas
en fait j'ai 4 conditions
le résultat étant attendu en cellule Q2
si la valeur de la cellule J2 est = 0 sanction "pas flashé"
si valeur J2 est supérieur ou égal à N2 et inférieur ou égal à P2 sanction "RAS"
si J2 est inférieur à N2 sanction "trop tôt"
si J2 est supérieur à P2 sanction "trop tard"
j'ai bien traduit cela par une "simple formule" qui fonctionne:
Code:
=SI(J2=0;"PAS FLASHE";SI(ET(HEURE(J2)*60+MINUTE(J2)>=HEURE(N2)*60+MINUTE(N2);HEURE(J2)*60+MINUTE(J2)<=HEURE(P2)*60+MINUTE(P2));"RAS";SI(HEURE(J2)*60+MINUTE(J2)<HEURE(N2)*60+MINUTE(N2);"TROP TOT";SI(HEURE(J2)*60+MINUTE(J2)>HEURE(P2)*60+MINUTE(P2);"TROP TARD"))))
Mais compte tenu que j'ai plus de 10000 lignes a traiter et très régulièrement je souhaitais automatiser la tache en VBA
l'enregistreur de macro ne veut pas m'aider il refuse carrément d'enregistrer la chose
j'ai tenté de traduire de cette manière mais ;(
Code:
Sub sanction_bis()
Dim derLig As Long
derLig = [A65000].End(xlUp).Row
With Range("Q2:Q" & derLig)
.FormulaR1C1 = _
"=IF(RC[-5]=0,""Pas flashé"",IF(AND(HOUR(RC[-5])*60+MINUTE(RC[-5])>=(HOUR(RC[-3])*60+MINUTE(RC[-3]),(HOUR(RC[-5])*60+MINUTE(RC[-5])<=(HOUR(RC[-1])*60+MINUTE(RC[-1],""RAS"",(HOUR(RC[-7])*60+MINUTE(RC[-7])<(HOUR(RC[-7])*60+MINUTE(RC[-7]),""TROP TOT"",SI(HOUR(RC[-7])*60+MINUTE(RC[-7])>(HOUR(RC[-1])*60+MINUTE(RC[-1],""TROP TARD"")))"
End With
End Sub
si vous pouviez m'aider j'en serais ravi