Ajout 6 semaines à 1 date avec conditions

Bonsoir,

Je souhaiterais calculer la date du week end 6 semaines après la date indiquée. soit 42 jours. J'ai fais : ligne 3 & ligne 4 (pour chaque salarié) (6 semaines x 7 jours par semaine) que j'ajoute à chaque date de samedi. Si le résultat trouvé appartient à la liste de la feuille "Fêtes" (C4:C24) alors il faut rajouter 7 jours de plus (+). Pour la colonne E je pense avoir fait ce qu'il fallait.

Pour les autres colonnes, il faut rajouter en plus la condition : si le résultat trouvé est égal à la colonne précédente alors rajouter 7 jours ... etc pour chaque colonne.

Pouvez vous m'aider svp car j'ai essayé en imbriquant des si ... mais en vain

Merci à vous

Je vous joins un fichier .

11test-week-end.xlsx (32.61 Ko)

Bonjour,

J'avoue ne pas comprendre ta feuille ...

Pour obtenir le week-end dans 6 semaines ... tu peux utiliser la formule suivante

=tadate+7-JOURSEM(tadate)+42

En espèrant que cela t'aide

Bonsoir James007,

effacé voir le message suivant ... avec toutes mes excuse

Des fois je pars dans des explications qui compliquent tout ..... désolé

Pour faire simple, je souhaite donner un week end de repos à chaque membre de mon équipe toutes les 6 semaines. Si le week end est prévu dans le tableau des fêtes ou si le week end est déjà donné à un autre collègue alors décalé au prochain week end libre.

J'espère avoir été bcp plus clair cette fois ci

Bonjour,

Donc, dans ta logique, la variable est le Nombre de semaines ...

Cela dit, si le samedi suivant (celui de la 7ième semaine) est la solution, tu peux insérer ta formule dans un Si ...

Par contre, si le nombre de semaines supplémentaires est une vraie inconnue ... et que tu risques de devoir tester plusieurs semaines successives ... il serait plus raisonnable d'utiliser une fonction personnalisée ...

Bonjour,

Tout d'abord, MERCI de prendre de ton temps sur mon projet.

Effectivement, le nombre de semaine supplémentaire varie en fonction de différents critères qui sont

- Si le week end suivant est une fête ou est un week end avant une fête;

- Aucun des salariés ne doit partir en week end en même temps;

- S'il y a des CP's, arrêt de travail ou autre, ça doit reporter d'autant

Petite précision, si ça te parait important, le week end peut comprendre soit le samedi & dimanche soit le dimanche & lundi. Si c'est trop galère, on reste sur le samedi & dimanche.

Comment peut on imaginer une fonction personnalisée avec ces critères. Je pensais que de "simples" SI imbriqué aurait suffit .... j'aurais pu chercher longtemps ....

Encore un grand merci

Bonjour,

Comme déjà indiqué ... je ne comprends absolument rien à la structure de ta feuille ...

Cela dit ... ci-joint ton fichier test avec la formule personnalisée pour obtenir le prochain Samedi disponible ...

En espèrant que cela t 'aide

JJames007,

Merci de ton retour,

Je regarde ton fichier joint et revient vers toi.

Tu me conseillerais quel structure de feuille qui serait plus claire ?

le but de ma démarche.

Pour chaque salarié

A partir de la date du premier week end donnée (au bout de 6 semaines de travail); je souhaiterais connaitre la date des prochains week end à leur donner.

En tenant compte des contraintes suivantes :

- Si le week end suivant est une fête ou est un week end avant une fête;

- Aucun des salariés ne doit partir en week end en même temps;

- S'il y a des CP's, arrêt de travail ou autre, ça doit reporter d'autant

Petite précision, si ça te parait important, le week end peut comprendre soit le samedi & dimanche soit le dimanche & lundi. Si c'est trop galère, on reste sur le samedi & dimanche.

Au final, cela me permettrait de réaliser un planning hebdomadaire

Tu me conseillerais quel structure de feuille qui serait plus claire ?

Re,

Si tu prends le temps de comprendre ta fonction personnalisée ... tu te rendras compte que, compte tenu du nombre et de la variété de toutes tes contraintes ... tu vas devoir construire un tableau pour les suivre de façon détaillée ...

La synthèse de tous tes suivis pourrait se matérialiser par le ' X ' pour indiquer que le Samedi en question n'est plus disponible ...

En espèrant que cela t'aide

James007,

Lorsque tu parles de fonction personnalisée, tu fais référence au code vba dans le module qui est

"Function ProchainSamedi(madate As Range) As Date" est ce bien ça ?

Re,

Effectivement la fonction qui calcule le résultat dans la cellule F1 ...

Re,

J'ai essayé de comprendre et ais mis des commentaires

Function ProchainSamedi(madate As Range) As Date
Dim nbs As Long, i As Long, temp As Long
nbs = 6 'Nbre de semaines a rajouter
Application.Volatile 'Recalcule à chaque modification de cellule
temp = Application.Match(CLng(madate) + 7 - Weekday(CLng(madate)), Sheet1.Range("B:B"), 0) + nbs
'Je ne sais pas à quoi correspon Application.Match

  Do Until IsEmpty(Range("C" & temp))
    temp = temp + 1
  Loop
ProchainSamedi = Range("B" & temp)
End Function

Peux tu m'aider à comprendre s'il te plait ?

Re,

Pour prendre les choses dans l'ordre :

1. Est-ce-que la fonction produit le résultat recherché ... ou pas ...???

2. L'ajout des commentaires explicatifs :

Function ProchainSamedi(madate As Range) As Date
' Fonction pour déterminer le prochain Samedi dispobible
Dim nbs As Long, i As Long, temp As Long
' Nombre de Semaines à ajouter
nbs = 6
' Permettre à la fonction de s'ajuster
Application.Volatile
' Trouver la première ligne temporaire
' Match signifie Equiv ...
' Donc il faut trouver dans la colonne B la ligne qui contient la date du prochain Samedi
' chiffre auquel on rajoute le Nombre de Semaines
temp = Application.Match(CLng(madate) + 7 - Weekday(CLng(madate)), Sheet1.Range("B:B"), 0) + nbs
' Corriger le nombre temporaire ..
' Tant que la valeur correspondante dans la Colonne C n'est pas vide ... une boucle ..
' il faut continuer d'ajouter 1 ... pour trouver le prochain Samedi disponible
  Do Until IsEmpty(Range("C" & temp))
    temp = temp + 1
  Loop
' Afficher le résultat final
ProchainSamedi = Range("B" & temp)
End Function

En espèrant que cela éclaire ta compréhension

Re,

La fonction personnalisée me donne effectivement le week end libre a la suite. Il faut donc que je crai une feuille par collaborateur et que je saisisse manuellement toutes les contraintes ?

Merci de tes commentaires, avec je comprends ... vachement mieux ...

Bonjour,

Content que cela puisse t'aider ...

Merci pour tes remerciements

La fonction personnalisée me donne effectivement le week end libre a la suite. Il faut donc que je crai une feuille par collaborateur et que je saisisse manuellement toutes les contraintes ?

Bonjour James007,

C'est ce qu'il me reste à faire ou y'a d'autres possibilités ?

Bonjour,

A partir du moment où tu as toute une liste de contraintes très spécifiques à respecter ...

Il va de soi que tu n'as pas d'autre possibilité que de les ' monitorer ' dans le détail ...

Re,

J'ai essayé de travailler sur une présentation de planning plus claire. Qu'en penses tu et que me conseilles tu ?

5nvx-test-01.xlsx (420.18 Ko)
Rechercher des sujets similaires à "ajout semaines date conditions"