Petit Hic de fin pour une fonction

herve62

XLDnaute Barbatruc
Supporter XLD
Bonjour à tous
Voilà , j'ai écris une fonction afin de déterminer si une semaine à cheval sur 2 mois différents pouvait être attribuée à la semaine S-1 , déclarée BIS
Mais il n'y a rien de linéaire ( ce que je pensais au début) donc on en revient à faire l'étude de X cas avant de trouver la solution commune
je joins le fichier
MES semaines débutent le SAMEDI et se terminent le VENDREDI donc comme par exemple :
29 oct ( 10/29) doit mettre 44 et pas 44 BIS
de même
26 Sept ( 09/26) doit mettre 40 BIS car Jeudi 1er et Ven 2 donc à cheval sur Sept et Oct
Merci de vos commentaires
 

Pièces jointes

  • SemainesBIS_RV2.xlsm
    16.5 KB · Affichages: 33
  • SemainesBIS_RV2.xlsm
    16.5 KB · Affichages: 32

CHRIS1945

XLDnaute Occasionnel
Re : Petit Hic de fin pour une fonction

Bonsoir,
Si j'ai bien compris ton problème, tu veux que, si le jour X fait partie d'une semaine (du samedi au vendredi) qui passe d'un mois à l'autre, il faut ajouter "bis" au numéro de cette semaine.
Si c'est bien cela je te propose la fonction suivante :
=SI(MOIS(B3-JOURSEM(B3;1)+1+1)=MOIS(B3+7-JOURSEM(B3;1)-1);TEXTE(NO.SEMAINE(B3;2);"##");TEXTE(NO.SEMAINE(B3;2);"##")&"bis")
Cela permet de tester si le mois du 1er jour de la semaine du jour et le dernier jour de la semaine font partie du même mois. La réponse permet de mettre bis ou pas au numéro de semaine.
J'espère que c'est ce que tu espérais : j'ai mis la formule dans la colonne E à ton fichier en retour ci-joint.
Merci de confirmer si cela convient
NB : j'ai choisi le numéro ISO de la semaine à toi de voir si tu veux l'autre façon.
A+
 

Pièces jointes

  • SemainesBIS_RV2.xlsm
    19.9 KB · Affichages: 28
  • SemainesBIS_RV2.xlsm
    19.9 KB · Affichages: 46

herve62

XLDnaute Barbatruc
Supporter XLD
Re : Petit Hic de fin pour une fonction

Merci bien CHRIS
Tu as bien compris le Pb sauf que je suis NUL en formule !! ( eh oui ) par contre mon domaine c'est VBA
chacun son truc
Donc je ne peux que voir le résultat , je vérifie tout cela demain
Bonne nuit et encore merci pour l'aide ( ici,même les vieux ont besoin des jeunes !!!)
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Petit Hic de fin pour une fonction

Bonsoir herve62, CHRIS1945,

(...)
=SI(MOIS(B3-JOURSEM(B3;1)+1+1)=MOIS(B3+7-JOURSEM(B3;1)-1);TEXTE(NO.SEMAINE(B3;2);"##");TEXTE(NO.SEMAINE(B3;2);"##")&"bis")
(...)
NB : j'ai choisi le numéro ISO de la semaine à toi de voir si tu veux l'autre façon. (...)

Je crois bien que la notion de semaine ISO n'a été (enfin) prise en compte par MS qu’à partir de la version 2010 d'Excel via l'utilisation du paramètre 21 : NO.SEMAINE(B3;21).

Pour le mercredi 31/12/2014, NO.SEMAINE(B3;2) retourne 53 alors que NO.SEMAINE(B3;21) retourne 1 (qui est conforme à la norme ISO puisque le jeudi de la semaine est en 2015)
 

CHRIS1945

XLDnaute Occasionnel
Re : Petit Hic de fin pour une fonction

Bonsoir,
J'ai lu la remarque de mapomme, j'ai essayé avec Excel 2007 et 2013 et la différence est qu'il existe dorénavant une fonction spécifique ISO dans la version 2013. Mais je n'ai pas utilisé cette fonction, j'ai utilisé l'ancienne fonction en paramétrant à 2 ce qui revient à prendre le mode ISO. De toute façon cela n'a pas beaucoup d'importance, si Hervé veut choisir une autre méthode il peut mettre le paramètre à 1. Voir l'aide d'Excel sur le sujet qui explique comment sont calculés les numéros de semaine. Si aucune méthode ne convient et que le résultat ne correspond pas aux attentes, il suffit de tester et de rajouter ou soustraire 1 au calcul automatique. Cela ne remet pas en cause, à mon avis, le résultat espéré qui est de déterminé si la semaine contient la frontière entre 2 mois.
Hervé si tu as des difficultés avec la formule : n'hésites pas à demander... et merci pour le compliment... regarde bien mon nom de code complet...CHRIS1945 et oui ....
A+
 

herve62

XLDnaute Barbatruc
Supporter XLD
Re : Petit Hic de fin pour une fonction

Bonjour Tous , Luc mes amitiés
Yups Chris !! mais tant mieux pour toi !!!:D
Bon là je me resauve 10j à notre chalet et depuis le cambriolage j'ai pas racheté de portable , en + ou je suis pas de WIFI ou à 5kms
Sinon je n'en suis qu'à 2007 j'ai bien eu 2010 mais j'ai pas aimé !
Je suis formulophobe même si MISANGE avait essayé de me guerir , donc je vais me forcer à comprendre
Personne n'a regardé ma fonction VBA ?
Merci encore à vous de votre aide et commentaires
Hervé

PS : Luc , le coeur se maintient .....3ans déjà
 

Paf

XLDnaute Barbatruc
Re : Petit Hic de fin pour une fonction

Bonjour herve62, CHRIS1945, mapomme,

Pas sûr d'avoir tout compris:


Code:
Function Sem_bis(jour As Date)
 Dim PremJ As Date, DerJ As Date
 PremJ = CDate(jour - Weekday(jour, vbSaturday) + 1)
 DerJ = CDate(jour + 7 - Weekday(jour, vbSaturday))
 Sem_bis = DatePart("ww", jour, 7) & IIf(Month(PremJ) <> Month(DerJ), " BIS", "")
End Function

pas vérifié au changement d'année

A+
 

Paf

XLDnaute Barbatruc
Re : Petit Hic de fin pour une fonction

Re,

Sans doute mieux compris; pour le retour alors:

Code:
Function Sem_bis(jour As Date)
 Dim PremJ As Date, DerJ As Date
 PremJ = CDate(jour - Weekday(jour, vbSaturday) + 1)
 DerJ = CDate(jour + 7 - Weekday(jour, vbSaturday))
 Sem_bis = IIf(Month(PremJ) <> Month(DerJ), DatePart("ww", CDate(jour - Weekday(jour, vbSaturday))) & " BIS", DatePart("ww", jour, 7))
End Function

A+
 

Discussions similaires

Réponses
306
Affichages
27 K

Statistiques des forums

Discussions
312 677
Messages
2 090 825
Membres
104 677
dernier inscrit
soufiane12