format conditionel pour weekd end/feriee avec table des jours feriee
3 réponses
Thierry
bonjour
Je travail en angola, pour une association humanitaire et je dois creer une
feuille de presence par employe, avec le sit ouaib de disciplus simplex j'ai
bien avance mais j'ai un probleme les jours ferie ne corresponde pas, vue
que l'angola a 14 jours ferier et que si un jour ferie ce trouve un week end
il est reporter au Lundi .....
j'ai don une page unique il suffit de changer le mois pour mettre les week
end etc... en couleur
Comment faire pour que le format conditionnal puisse fonctionner avec des
jours ferie specific ?? par exemple en regardant dans un table ?? (comme ca
une fois par an il suffit de changer la date des jours ferier de l'annee
-) )
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Pascal
Salut, Tu peux faire cela. A toi de rajouter tes jours spécifiques avec les paramètres Date Sérial . par exemple DateSérial(A,7,14). ou A est = à une zone nommée correspondant à une année, 7 le mois, et 14 le jour. Ici 14/07/2003 si dans ta case A tu as saisie 2003. Après si par exemple chez toi le 5 mai est férié, tu rajoutes cette ligne: Case Is= DateSerial (A,1,5). La fonction TYPEJOUR te renvoie 2 si le jour est férié
TYPEJOUR(D As Date)
DiFunctionm A As Integer, T As Integer Dim LP As Date, LD As Long Dim Toto As Long
A = Year(D) If A > 2099 Then TYPEJOUR = CVErr(xlErrValue) Exit Function End If LD = Int(D) If LD <= 2 Then If LD = 1 Then TYPEJOUR = 2 Exit Function End If T = (((255 - 11 * (A Mod 19)) - 21) Mod 30) + 21 LP = DateSerial(A, 3, 2) + T + (T > 48) _ + 6 - ((A + A 4 + T + (T > 48) + 1) Mod 7) Select Case D ' Jours fériés mobiles Case Is = LP, Is = LP + 38, Is = LP + 49 TYPEJOUR = 2 ' Jours fériés fixes Case Is = DateSerial(A, 1, 1), Is = DateSerial(A, 5, 1), _ Is = DateSerial(A, 5, 8), Is = DateSerial(A, 7, 14), _ Is = DateSerial(A, 8, 15), Is = DateSerial(A, 11, 1), _ Is = DateSerial(A, 11, 11), Is = DateSerial(A, 12, 25) TYPEJOUR = 2 Case Else ' Samedi ou dimanche If Weekday(D, vbMonday) >= 6 Then TYPEJOUR = 1 End Select
End Function
"Thierry" a écrit dans le message de news:Oa%
bonjour
Je travail en angola, pour une association humanitaire et je dois creer une
feuille de presence par employe, avec le sit ouaib de disciplus simplex j'ai
bien avance mais j'ai un probleme les jours ferie ne corresponde pas, vue que l'angola a 14 jours ferier et que si un jour ferie ce trouve un week end
il est reporter au Lundi .....
j'ai don une page unique il suffit de changer le mois pour mettre les week end etc... en couleur Comment faire pour que le format conditionnal puisse fonctionner avec des jours ferie specific ?? par exemple en regardant dans un table ?? (comme ca
une fois par an il suffit de changer la date des jours ferier de l'annee -) )
merci
thierry
Salut,
Tu peux faire cela. A toi de rajouter tes jours spécifiques avec les
paramètres Date Sérial .
par exemple DateSérial(A,7,14). ou A est = à une zone nommée correspondant à
une année, 7 le mois, et 14 le jour.
Ici 14/07/2003 si dans ta case A tu as saisie 2003.
Après si par exemple chez toi le 5 mai est férié, tu rajoutes cette ligne:
Case Is= DateSerial (A,1,5).
La fonction TYPEJOUR te renvoie 2 si le jour est férié
TYPEJOUR(D As Date)
DiFunctionm A As Integer, T As Integer
Dim LP As Date, LD As Long
Dim Toto As Long
A = Year(D) If A > 2099 Then
TYPEJOUR = CVErr(xlErrValue)
Exit Function
End If
LD = Int(D)
If LD <= 2 Then
If LD = 1 Then TYPEJOUR = 2
Exit Function
End If
T = (((255 - 11 * (A Mod 19)) - 21) Mod 30) + 21
LP = DateSerial(A, 3, 2) + T + (T > 48) _
+ 6 - ((A + A 4 + T + (T > 48) + 1) Mod 7)
Select Case D
' Jours fériés mobiles
Case Is = LP, Is = LP + 38, Is = LP + 49
TYPEJOUR = 2
' Jours fériés fixes
Case Is = DateSerial(A, 1, 1), Is = DateSerial(A, 5, 1), _
Is = DateSerial(A, 5, 8), Is = DateSerial(A, 7, 14), _
Is = DateSerial(A, 8, 15), Is = DateSerial(A, 11, 1), _
Is = DateSerial(A, 11, 11), Is = DateSerial(A, 12, 25)
TYPEJOUR = 2
Case Else
' Samedi ou dimanche
If Weekday(D, vbMonday) >= 6 Then TYPEJOUR = 1
End Select
End Function
"Thierry" <tschweitzer@oxfam.org.uk> a écrit dans le message de
news:Oa%232ObAtDHA.2388@TK2MSFTNGP12.phx.gbl...
bonjour
Je travail en angola, pour une association humanitaire et je dois creer
une
feuille de presence par employe, avec le sit ouaib de disciplus simplex
j'ai
bien avance mais j'ai un probleme les jours ferie ne corresponde pas, vue
que l'angola a 14 jours ferier et que si un jour ferie ce trouve un week
end
il est reporter au Lundi .....
j'ai don une page unique il suffit de changer le mois pour mettre les week
end etc... en couleur
Comment faire pour que le format conditionnal puisse fonctionner avec des
jours ferie specific ?? par exemple en regardant dans un table ?? (comme
ca
une fois par an il suffit de changer la date des jours ferier de l'annee
-) )
Salut, Tu peux faire cela. A toi de rajouter tes jours spécifiques avec les paramètres Date Sérial . par exemple DateSérial(A,7,14). ou A est = à une zone nommée correspondant à une année, 7 le mois, et 14 le jour. Ici 14/07/2003 si dans ta case A tu as saisie 2003. Après si par exemple chez toi le 5 mai est férié, tu rajoutes cette ligne: Case Is= DateSerial (A,1,5). La fonction TYPEJOUR te renvoie 2 si le jour est férié
TYPEJOUR(D As Date)
DiFunctionm A As Integer, T As Integer Dim LP As Date, LD As Long Dim Toto As Long
A = Year(D) If A > 2099 Then TYPEJOUR = CVErr(xlErrValue) Exit Function End If LD = Int(D) If LD <= 2 Then If LD = 1 Then TYPEJOUR = 2 Exit Function End If T = (((255 - 11 * (A Mod 19)) - 21) Mod 30) + 21 LP = DateSerial(A, 3, 2) + T + (T > 48) _ + 6 - ((A + A 4 + T + (T > 48) + 1) Mod 7) Select Case D ' Jours fériés mobiles Case Is = LP, Is = LP + 38, Is = LP + 49 TYPEJOUR = 2 ' Jours fériés fixes Case Is = DateSerial(A, 1, 1), Is = DateSerial(A, 5, 1), _ Is = DateSerial(A, 5, 8), Is = DateSerial(A, 7, 14), _ Is = DateSerial(A, 8, 15), Is = DateSerial(A, 11, 1), _ Is = DateSerial(A, 11, 11), Is = DateSerial(A, 12, 25) TYPEJOUR = 2 Case Else ' Samedi ou dimanche If Weekday(D, vbMonday) >= 6 Then TYPEJOUR = 1 End Select
End Function
"Thierry" a écrit dans le message de news:Oa%
bonjour
Je travail en angola, pour une association humanitaire et je dois creer une
feuille de presence par employe, avec le sit ouaib de disciplus simplex j'ai
bien avance mais j'ai un probleme les jours ferie ne corresponde pas, vue que l'angola a 14 jours ferier et que si un jour ferie ce trouve un week end
il est reporter au Lundi .....
j'ai don une page unique il suffit de changer le mois pour mettre les week end etc... en couleur Comment faire pour que le format conditionnal puisse fonctionner avec des jours ferie specific ?? par exemple en regardant dans un table ?? (comme ca
une fois par an il suffit de changer la date des jours ferier de l'annee -) )
merci
thierry
Thierry
merci je vais regarder ca "Pascal" wrote in message news:
Salut, Tu peux faire cela. A toi de rajouter tes jours spécifiques avec les paramètres Date Sérial . par exemple DateSérial(A,7,14). ou A est = à une zone nommée correspondant à
une année, 7 le mois, et 14 le jour. Ici 14/07/2003 si dans ta case A tu as saisie 2003. Après si par exemple chez toi le 5 mai est férié, tu rajoutes cette ligne: Case Is= DateSerial (A,1,5). La fonction TYPEJOUR te renvoie 2 si le jour est férié
TYPEJOUR(D As Date)
DiFunctionm A As Integer, T As Integer Dim LP As Date, LD As Long Dim Toto As Long
A = Year(D) If A > 2099 Then TYPEJOUR = CVErr(xlErrValue) Exit Function End If LD = Int(D) If LD <= 2 Then If LD = 1 Then TYPEJOUR = 2 Exit Function End If T = (((255 - 11 * (A Mod 19)) - 21) Mod 30) + 21 LP = DateSerial(A, 3, 2) + T + (T > 48) _ + 6 - ((A + A 4 + T + (T > 48) + 1) Mod 7) Select Case D ' Jours fériés mobiles Case Is = LP, Is = LP + 38, Is = LP + 49 TYPEJOUR = 2 ' Jours fériés fixes Case Is = DateSerial(A, 1, 1), Is = DateSerial(A, 5, 1), _ Is = DateSerial(A, 5, 8), Is = DateSerial(A, 7, 14), _ Is = DateSerial(A, 8, 15), Is = DateSerial(A, 11, 1), _ Is = DateSerial(A, 11, 11), Is = DateSerial(A, 12, 25) TYPEJOUR = 2 Case Else ' Samedi ou dimanche If Weekday(D, vbMonday) >= 6 Then TYPEJOUR = 1 End Select
End Function
"Thierry" a écrit dans le message de news:Oa%
bonjour
Je travail en angola, pour une association humanitaire et je dois creer une
feuille de presence par employe, avec le sit ouaib de disciplus simplex j'ai
bien avance mais j'ai un probleme les jours ferie ne corresponde pas, vue
que l'angola a 14 jours ferier et que si un jour ferie ce trouve un week end
il est reporter au Lundi .....
j'ai don une page unique il suffit de changer le mois pour mettre les week
end etc... en couleur Comment faire pour que le format conditionnal puisse fonctionner avec des
jours ferie specific ?? par exemple en regardant dans un table ?? (comme ca
une fois par an il suffit de changer la date des jours ferier de l'annee -) )
merci
thierry
merci je vais regarder ca
"Pascal" <Zork.NOSSWEN@tropcurieurx.com> wrote in message
news:ePCHMaCtDHA.640@tk2msftngp13.phx.gbl...
Salut,
Tu peux faire cela. A toi de rajouter tes jours spécifiques avec les
paramètres Date Sérial .
par exemple DateSérial(A,7,14). ou A est = à une zone nommée correspondant
à
une année, 7 le mois, et 14 le jour.
Ici 14/07/2003 si dans ta case A tu as saisie 2003.
Après si par exemple chez toi le 5 mai est férié, tu rajoutes cette ligne:
Case Is= DateSerial (A,1,5).
La fonction TYPEJOUR te renvoie 2 si le jour est férié
TYPEJOUR(D As Date)
DiFunctionm A As Integer, T As Integer
Dim LP As Date, LD As Long
Dim Toto As Long
A = Year(D) If A > 2099 Then
TYPEJOUR = CVErr(xlErrValue)
Exit Function
End If
LD = Int(D)
If LD <= 2 Then
If LD = 1 Then TYPEJOUR = 2
Exit Function
End If
T = (((255 - 11 * (A Mod 19)) - 21) Mod 30) + 21
LP = DateSerial(A, 3, 2) + T + (T > 48) _
+ 6 - ((A + A 4 + T + (T > 48) + 1) Mod 7)
Select Case D
' Jours fériés mobiles
Case Is = LP, Is = LP + 38, Is = LP + 49
TYPEJOUR = 2
' Jours fériés fixes
Case Is = DateSerial(A, 1, 1), Is = DateSerial(A, 5, 1), _
Is = DateSerial(A, 5, 8), Is = DateSerial(A, 7, 14), _
Is = DateSerial(A, 8, 15), Is = DateSerial(A, 11, 1), _
Is = DateSerial(A, 11, 11), Is = DateSerial(A, 12, 25)
TYPEJOUR = 2
Case Else
' Samedi ou dimanche
If Weekday(D, vbMonday) >= 6 Then TYPEJOUR = 1
End Select
End Function
"Thierry" <tschweitzer@oxfam.org.uk> a écrit dans le message de
news:Oa%232ObAtDHA.2388@TK2MSFTNGP12.phx.gbl...
bonjour
Je travail en angola, pour une association humanitaire et je dois creer
une
feuille de presence par employe, avec le sit ouaib de disciplus simplex
j'ai
bien avance mais j'ai un probleme les jours ferie ne corresponde pas,
vue
que l'angola a 14 jours ferier et que si un jour ferie ce trouve un week
end
il est reporter au Lundi .....
j'ai don une page unique il suffit de changer le mois pour mettre les
week
end etc... en couleur
Comment faire pour que le format conditionnal puisse fonctionner avec
des
jours ferie specific ?? par exemple en regardant dans un table ?? (comme
ca
une fois par an il suffit de changer la date des jours ferier de l'annee
-) )
merci je vais regarder ca "Pascal" wrote in message news:
Salut, Tu peux faire cela. A toi de rajouter tes jours spécifiques avec les paramètres Date Sérial . par exemple DateSérial(A,7,14). ou A est = à une zone nommée correspondant à
une année, 7 le mois, et 14 le jour. Ici 14/07/2003 si dans ta case A tu as saisie 2003. Après si par exemple chez toi le 5 mai est férié, tu rajoutes cette ligne: Case Is= DateSerial (A,1,5). La fonction TYPEJOUR te renvoie 2 si le jour est férié
TYPEJOUR(D As Date)
DiFunctionm A As Integer, T As Integer Dim LP As Date, LD As Long Dim Toto As Long
A = Year(D) If A > 2099 Then TYPEJOUR = CVErr(xlErrValue) Exit Function End If LD = Int(D) If LD <= 2 Then If LD = 1 Then TYPEJOUR = 2 Exit Function End If T = (((255 - 11 * (A Mod 19)) - 21) Mod 30) + 21 LP = DateSerial(A, 3, 2) + T + (T > 48) _ + 6 - ((A + A 4 + T + (T > 48) + 1) Mod 7) Select Case D ' Jours fériés mobiles Case Is = LP, Is = LP + 38, Is = LP + 49 TYPEJOUR = 2 ' Jours fériés fixes Case Is = DateSerial(A, 1, 1), Is = DateSerial(A, 5, 1), _ Is = DateSerial(A, 5, 8), Is = DateSerial(A, 7, 14), _ Is = DateSerial(A, 8, 15), Is = DateSerial(A, 11, 1), _ Is = DateSerial(A, 11, 11), Is = DateSerial(A, 12, 25) TYPEJOUR = 2 Case Else ' Samedi ou dimanche If Weekday(D, vbMonday) >= 6 Then TYPEJOUR = 1 End Select
End Function
"Thierry" a écrit dans le message de news:Oa%
bonjour
Je travail en angola, pour une association humanitaire et je dois creer une
feuille de presence par employe, avec le sit ouaib de disciplus simplex j'ai
bien avance mais j'ai un probleme les jours ferie ne corresponde pas, vue
que l'angola a 14 jours ferier et que si un jour ferie ce trouve un week end
il est reporter au Lundi .....
j'ai don une page unique il suffit de changer le mois pour mettre les week
end etc... en couleur Comment faire pour que le format conditionnal puisse fonctionner avec des
jours ferie specific ?? par exemple en regardant dans un table ?? (comme ca
une fois par an il suffit de changer la date des jours ferier de l'annee -) )
merci
thierry
AV
Une solution : Une plage nommée "Frs" contenant les jours fériés dans laquelle seront fait, pour l'année en cours, les calculs concernant les jours fériés et notamment le problème de ceux tombant un WE qui sont à reporter au lundi qui suit Exemple de jours fériés et de calcul à mettre dans la plage "Jfrs" Supposons, pour des dates fixes, que le 1 Janvier et le 12 avril de l'année en cours soit fériés --> formules : =SI((JOURSEM(DATE(ANNEE(AUJOURDHUI());1;1);2)>5);DATE(ANNEE(AUJOURDHUI());1;1)-J OURSEM(DATE(ANNEE(AUJOURDHUI());1;1)-1)+8;DATE(ANNEE(AUJOURDHUI());1;1)) =SI((JOURSEM(DATE(ANNEE(AUJOURDHUI());4;12);2)>5);DATE(ANNEE(AUJOURDHUI());4;12) -JOURSEM(DATE(ANNEE(AUJOURDHUI());4;12)-1)+8;DATE(ANNEE(AUJOURDHUI());4;12)) Etc..pour chacune des dates fixes ou mobiles en changeant la partie ..DATE(ANNEE(AUJOURDHUI());1;1) dans la formule
Ensuite, avec tes dates en A1:A31 : Sélection A1:A31 --> MFC --> la formule est : =ET(A1<>"";OU(JOURSEM(A1;2)>5;ESTNUM(EQUIV(A1;Jfrs;0)))) --> motif --> ok
AV
Une solution :
Une plage nommée "Frs" contenant les jours fériés dans laquelle seront fait,
pour l'année en cours, les calculs concernant les jours fériés et notamment le
problème de ceux tombant un WE qui sont à reporter au lundi qui suit
Exemple de jours fériés et de calcul à mettre dans la plage "Jfrs"
Supposons, pour des dates fixes, que le 1 Janvier et le 12 avril de l'année en
cours soit fériés --> formules :
=SI((JOURSEM(DATE(ANNEE(AUJOURDHUI());1;1);2)>5);DATE(ANNEE(AUJOURDHUI());1;1)-J
OURSEM(DATE(ANNEE(AUJOURDHUI());1;1)-1)+8;DATE(ANNEE(AUJOURDHUI());1;1))
=SI((JOURSEM(DATE(ANNEE(AUJOURDHUI());4;12);2)>5);DATE(ANNEE(AUJOURDHUI());4;12)
-JOURSEM(DATE(ANNEE(AUJOURDHUI());4;12)-1)+8;DATE(ANNEE(AUJOURDHUI());4;12))
Etc..pour chacune des dates fixes ou mobiles en changeant la partie
..DATE(ANNEE(AUJOURDHUI());1;1) dans la formule
Ensuite, avec tes dates en A1:A31 :
Sélection A1:A31 --> MFC --> la formule est :
=ET(A1<>"";OU(JOURSEM(A1;2)>5;ESTNUM(EQUIV(A1;Jfrs;0))))
--> motif --> ok
Une solution : Une plage nommée "Frs" contenant les jours fériés dans laquelle seront fait, pour l'année en cours, les calculs concernant les jours fériés et notamment le problème de ceux tombant un WE qui sont à reporter au lundi qui suit Exemple de jours fériés et de calcul à mettre dans la plage "Jfrs" Supposons, pour des dates fixes, que le 1 Janvier et le 12 avril de l'année en cours soit fériés --> formules : =SI((JOURSEM(DATE(ANNEE(AUJOURDHUI());1;1);2)>5);DATE(ANNEE(AUJOURDHUI());1;1)-J OURSEM(DATE(ANNEE(AUJOURDHUI());1;1)-1)+8;DATE(ANNEE(AUJOURDHUI());1;1)) =SI((JOURSEM(DATE(ANNEE(AUJOURDHUI());4;12);2)>5);DATE(ANNEE(AUJOURDHUI());4;12) -JOURSEM(DATE(ANNEE(AUJOURDHUI());4;12)-1)+8;DATE(ANNEE(AUJOURDHUI());4;12)) Etc..pour chacune des dates fixes ou mobiles en changeant la partie ..DATE(ANNEE(AUJOURDHUI());1;1) dans la formule
Ensuite, avec tes dates en A1:A31 : Sélection A1:A31 --> MFC --> la formule est : =ET(A1<>"";OU(JOURSEM(A1;2)>5;ESTNUM(EQUIV(A1;Jfrs;0)))) --> motif --> ok