OVH Cloud OVH Cloud

Tableau de garde

18 réponses
Avatar
David 02
Bonsoir à tous

je cherche à créer un tableau de garde du 01/01/2004 au31/12/2004 à partir
de A2 de ce style :

En colonne A : date de début de garde ( jj/mm/aa )
En colonne B : heure de début de garde ( hh:mm )
En colonne C : date de fin de garde
En colonne D : heure de fin de garde
En colonne E : un nom

Je pourais faire une recopie incrémentée (pour les dates) vers le bas mais
voila le problème

- pour les samedis, dimanches et jours fériés, il y a 2 gardes : une de
08h00 à 20h00 le meme jour, et, une de 20h00 à 08h00 le lendemain
- pour les jours en semaine 1 garde de 20h00 à 08h00 le lendemain

soit :
En A2 : 01/01/2004, en B2 : 08:00, en C2 : 01/01/2004, en D2 : 20:00
En A3 : 01/01/2004, en B3 : 20:00, en C3 : 02/01/2004, en D3 : 08:00
En A4 : 02/01/2004, en B4 : 20:00, en C4 : 03/01/2004, en D4 : 08:00
etc...

Comment créer ceci via une macro ou formule sans oublier les jours fériés ?

Merci de votre aide.

David

8 réponses

1 2
Avatar
David 02
super merci encore

encore une petite mise au point

Si je veux dans la colonne A mettre les samedis, dimanches et J.F. en rouge,
je fais comment ?

actuellement j'utilise un format conditionnelle avec :
=OU(JOURSEM(A1)=1;JOURSEM(A1)=7

mais cela me met en rouge que les samedis et dimanches

salutations
david
Avatar
AV
Si je veux dans la colonne A mettre les samedis, dimanches et J.F. en rouge,
je fais comment ?


Mise en Forme Conditionnelle :
Condition 1 :
=OU(ET(JOUR(A1)=1;MOIS(A1)=1);FRANC(DATE(ANNEE(A1);4;JOUR(MINUTE(ANNEE(A1)/38)/2
+55))/7;)*7-6+1¡;ET(JOUR(A1)=1;MOIS(A1)=5);ET(JOUR(A1)=8;MOIS(A1)=5);FRANC(DAT
E(ANNEE(A1);4;JOUR(MINUTE(ANNEE(A1)/38)/2+55))/7;)*7-6+39¡)
Condition 2 :
=OU(FRANC(DATE(ANNEE(A1);4;JOUR(MINUTE(ANNEE(A1)/38)/2+55))/7;)*7-6+50¡;ET(JOU
R(A1);MOIS(A1)=7);ET(JOUR(A1);MOIS(A1)=8);ET(JOUR(A1)=1;MOIS(A1));ET(JO
UR(A1);MOIS(A1));ET(JOUR(A1)%;MOIS(A1)))
Condition 3 : =JOURSEM(A1;2)>5

Le plus simple serait d'intégrer le formatage dans la boucle "for z...next"
AV

Avatar
David 02
Le plus simple serait d'intégrer le formatage dans la boucle "for
z...next"


Et comment faire, si cela n'est pas trop te demander ?

merci salutations

Avatar
Pascal
Bonjour
Alain Vallon m'avait passé ce code à recopié, je pense qu'il peut t'être
utile.
A toi de changer les heures début et le heures fin dans le code.
Pour les fériés utilise la fonction TYPEJOUR de laurant Longre


Function HeuresNuit(D1#, D2#) 'FS
Dim Nuit#, DebJour#, DebNuit#
DebJour# = TimeValue("6:00:00")
DebNuit# = TimeValue("21:00:00")

Select Case D1 - D2
Case 0: Nuit = DebJour + (1 - DebNuit)
Case Is < 0:
Select Case D2
Case Is <= DebJour: Nuit = D2 - D1
Case Is > DebNuit:
If D1 < DebNuit Then Nuit = D2 - DebNuit Else Nuit = D2 - D1
Case Else
If DebJour - D1 > 0 Then Nuit = DebJour - D1
If D2 - DebNuit > 0 Then Nuit = Nuit + (D2 - DebNuit)
End Select
Case Is > 0:
Select Case D1
Case Is < DebJour: Nuit = (DebJour - D1) + (1 - DebNuit)
Case Is < DebNuit: Nuit = 1 - DebNuit
Case Else: Nuit = 1 - D1
End Select
If D2 > DebJour Then Nuit = Nuit + DebJour Else Nuit = Nuit + D2
If D2 > DebNuit Then Nuit = Nuit + (D2 - DebNuit)
End Select

HeuresNuit = Nuit * 24

End Function
"David 02" a écrit dans le message de news:
bnhgou$a65$
Bonsoir à tous

je cherche à créer un tableau de garde du 01/01/2004 au31/12/2004 à partir
de A2 de ce style :

En colonne A : date de début de garde ( jj/mm/aa )
En colonne B : heure de début de garde ( hh:mm )
En colonne C : date de fin de garde
En colonne D : heure de fin de garde
En colonne E : un nom

Je pourais faire une recopie incrémentée (pour les dates) vers le bas mais
voila le problème

- pour les samedis, dimanches et jours fériés, il y a 2 gardes : une de
08h00 à 20h00 le meme jour, et, une de 20h00 à 08h00 le lendemain
- pour les jours en semaine 1 garde de 20h00 à 08h00 le lendemain

soit :
En A2 : 01/01/2004, en B2 : 08:00, en C2 : 01/01/2004, en D2 : 20:00
En A3 : 01/01/2004, en B3 : 20:00, en C3 : 02/01/2004, en D3 : 08:00
En A4 : 02/01/2004, en B4 : 20:00, en C4 : 03/01/2004, en D4 : 08:00
etc...

Comment créer ceci via une macro ou formule sans oublier les jours fériés
?


Merci de votre aide.

David




Avatar
AV
Alain Vallon m'avait passé ce code à recopié, je pense qu'il peut t'être
utile.


Heu...je sais pas si je "t'ai passé ce code" mais il est signé FS !
......et puis c'est pas vraiment la question..
;-)
AV

Avatar
AV
L'essentiel étant fait...
transmets moi en bal peros une adresse valide...je t'envoie l'exemple

AV
Avatar
guy
Hello AV,

Si le message est pour moi: grand merci, je vais essayer.
Guy
"AV" a écrit dans le message de
news:
Dans un classeur vierge, tu fais alt+F11 > insertion > module >
copier/coller le

code puis l'exécuter à partir de Outils> Macro > Macros > sélectionner le
nom

(Gardes) puis Exécuter
Attention, à partir du forum, figure un retour à la ligne à supprimer
aprés :

......*MOD(" & varAn &
La ligne commence à
[A2] = Evaluate...
et se finit à ......",19),30))/7,)*7-5")

AV




Avatar
David 02
je t'ais envoyer en BAL perso une adresse E.Mail

grand merci

salutations.

"AV" a écrit dans le message de
news:bnjdst$ghp$
L'essentiel étant fait...
transmets moi en bal peros une adresse valide...je t'envoie l'exemple

AV




1 2