Incrémenter N° de semaine chaque lundi [Résolu/Fermé]

Signaler
-
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
-
Bonjour,

J'ai un calendrier annuel j'aimerai pourvoir ajouter tous les lundis un N° de 1 à 19, arrive a 19 repartir avec le N°1 etc.
Exemple :
A5 = jour de semaine
B4 = N° de semaine (1 à 19)
AC1 = total de semaine (19) AC
A B 19
Mois N°
janv 2015
jeu 01 1
ven 02 1
sam 03 1
dim 04 1
lun 05 2


je n'arrive pas a trouvé la bonne solution, j'espère que l'un d'entre vous pourra m'aide.
SI(A5=JOURSEM(2);B4+1;SI(B4>$AC$1;1))

Merci

9 réponses

Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 396
Bonjour,

Avec ta date en colonne A, en colonne B tu peux utiliser :

=SI(MOD(NO.SEMAINE(A4;2);19)=0;19;MOD(NO.SEMAINE(A4;2);19))
--
Toujours zen
La perfection est atteinte, non pas lorsqu'il n'y a plus rien à ajouter, mais lorsqu'il n'y a plus rien à retirer. Antoine de Saint-Exupéry
Bonsoir Gbinforme

Tout d'abord merci beaucoup de ton aide.
J'ai essayer de rentre ta formule, la reponse que j'ai :
Vous avez tapé un nombre trop important d'argument pour cette fonction.

et pourra tu m'expliquer ta formule, car je comprend pas trop son fonctionnement.
sachant que le lundi portera semaine 4 lundi suivant semaine 5 juqu'a 19 puis recommencera par la semaine 1.

j'espere que tu comprendra.
merci
Sam
Retification j'ai oublie de mettre =0 dans ta formule. est ca fonctionne en partie.
ma premiere cologne est le mois de janv la deuxieme fevrier etc.

1) le 1er janvier peut etre la semaine 4, 9 ou 15 tout depend de l'année precedente.
dans ta formule elle commence par la semaine 1 c 'est qui fausse le calcul.
(c'est ma faute je me suis mal exprimer, desole)

2) j'ai fait un copie colle de ta formule mais cette fois la cellule est vide.

Merci encore et bon week end.
Sam
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 396
Bonsoir sam,

dans ta formule elle commence par la semaine 1

Absolument puisque c'est l'exemple que tu as donné ! Mais maintenant "sachant que le lundi portera semaine 4" : je ne fais aucun art divinatoire...

cette fois la cellule est vide

C'est totalement impossible car le résultat est forcément un nombre de 1 à 19.

L'informatique est binaire et ne supporte pas l'à peu près ou le peut-être : si tu as de mauvais résultats cela vient d'une erreur de saisie ou comme tu l'as dit d'un mauvais énoncé du problème.

Si tu pouvais nous mettre un exemple de structure des données, sans éléments personnels, avec les résultats souhaités expliqués clairement, se serait plus facile de t'aider.
Pour communiquer ton classeur tu le télécharges sur https://www.cjoint.com/ et tu mets ici le lien obtenu.
Bonjour
J'ai copie le fichier sur le lien que tu ma donnee,
le fichier s'appelle Planning test.

Bon week end
Sam
Messages postés
23994
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
11 avril 2021
6 719
Bonjour,

il faut que tu colles ici le lien fourni.
eric
Désolé je n'avais pas compris.

http://cjoint.com/?DCDsDf2caqJ

la formule est inséré dans la colonne après la date.
Merci
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 396
Bonjour,

Merci pour ton classeur : c'est plus facile d'adapter.

https://www.cjoint.com/c/DCDv1D9vFvz

je comprend pas trop son fonctionnement.

=SI(A4="";""; date non renseignée
SI(MOD(NO.SEMAINE(A4;2)+$AB$1-1;$AB$2)=0;$AB$2
la division du numéro de semaine norme ISO démarrant le lundi
+ le numéro début - 1 par ton cycle de semaines
donne zéro comme reste => c'est la valeur du cycle
;MOD(NO.SEMAINE(A4;2)+$AB$1-1;$AB$2)))
sinon le numéro de semaine est le reste de la division
Est-ce plus clair pour toi ?
Bonjour jbinforme,
Je te remercie infinement de ton aide et d'avoir trouve la solution a mon probleme.
J'ai decortique ta formule pour essayer de comprendre, et c'est fait.

tu ne comprend pas trop le fonctionnement de ces numero de semaine:
je t'explique
le calendrier 2014 la semaine 6 fini en decembre et un mercredi
en 2015 le 1er janvier debute un jeudi donc je reporterai la semaine 6 dans la case AB1 qui continura sa fin de semaine etc..
cela m'eviter chaque année de refaire les calcul et les copie coller, sans compter les erreurs.
c'est comme pour les repos, je sais que la semaine 4 c'est mardi et dimanche semaine 10 jeudi et vendredi.
j'espere que tu as compris , j'ai du mal a expliquer par ecrit.
Encore merci.
Messages postés
23994
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
11 avril 2021
6 719
Bonjour à tous,

Autre solution peut-être plus simple.
Inscrire dans une cellule une date initiale correspondant à un lundi semaine 1 et nommer cette cellule lundi1.
Par facilité : 10/02/14, mais elle pourrait être en 2013.
En B4 :
=SI(JOURSEM(A4;3);"";MOD((A4-Lundi1)/7;19)+1)


eric
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 396
Bonjour sam, Éric,

Effectivement, à cause du zéro mal maitrisé, je me suis un peu compliqué la formule qui peut être simplifiée ainsi :

=SI(A4="";"";MOD(NO.SEMAINE(A4;2)+$AB$1-2;$AB$2)+1)
--
Toujours zen
La perfection est atteinte, non pas lorsqu'il n'y a plus rien à ajouter, mais lorsqu'il n'y a plus rien à retirer. Antoine de Saint-Exupéry
Messages postés
23994
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
11 avril 2021
6 719
Salut gb,

Aussi oui :-)
J'avais pensé à la date initiale dans une cellule pour permettre à chacun de fixer sa semaine 1 s'il y a plusieurs utilisateurs.
eric
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 396
Salut Éric,

Tu as tout à fait raison et ta formule fonctionne parfaitement : même avec un seul utilisateur, cela fonctionne sur plusieurs années.

Il me semblait bien que j'avais un peu oublié St-Ex hier soir ;-)