Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

N° de semaine

D

Den's

Guest
Bonjour à toutes et tous,

Voilà d'apres ce qui suit, j'aimerai savoir comment je dois faire pour pouvoir l'utiliser avec ma date de départ. Ce programme sert à donner le numéro de semaine.

Function NOSEM(D As Date) As Long
D = Int(D)
NOSEM = DateSerial(Year(D + (8 - Weekday(D)) Mod 7 - 3), 1, 1)
NOSEM = ((D - NOSEM - 3 + (Weekday(NOSEM) + 1) Mod 7)) \ 7 + 1
nsem = NOSEM
End Function

Merci de votre aide.

PS: merci de me dire également comment l'utiliser dans l'autre sens. c à dire du N° de semaine de l'année en cours pour avoir le début de semaine.

Informatiquement
Denis
 
D

Denis

Guest
Bonjour Denis et le Forum
sur ton programme dont il est question, D est ta date de départ au format jj/mm/aaaa
j'espère que celà répond à ta première question pour l'inverse, essais cette macro ci-dessous (extrait de Excelabo)


Function LUNDI(annee As Integer, NumSemaine As Integer) As Double

'retourne la date du lundi de la semaine n° "NumSemaine" (ISO) de
l'année "Annee"

Dim PremierJour As Date

PremierJour = DateSerial(annee, 1, 1)
If WeekDay(PremierJour) = 6 Or WeekDay(PremierJour) = 7 Then
'si le 1er janvier tombe un vendredi ou un samedi

PremierJour = PremierJour - WeekDay(PremierJour) + 2
Else

PremierJour = PremierJour - WeekDay(PremierJour) - 5
End If
LUNDI = PremierJour + 7 * NumSemaine
End Function

bon courage et @+
Denis
 
D

didier

Guest
Salut les Denis,

Je crois qu'il y a un moyen beaucoup plus simple de récupérer le numero de semaine à partir d'une date donnée, voici :

Function SemaineNo(Madate As Date)
SemaineNo = DatePart("ww", Madate)
End Function

Nettement plus court et efficace.

A+
Didier
 
J

jp

Guest
salut a tous,


que de temps perdu à faire une fonction qui existe deja si vous avez installé l'utilitaire d'analyse

comme je travaille avec un vba anglais : la fonction s'appelle WEEKNUM()

donc pour den's, il suffit de l'installer et plus de probleme

A+

jp
 
T

Ti

Guest
même remarque que jp, idem pour renvoyer le début de semaine d'après le numéro de semaine

ex : ta date est en A3

- pour avoir le numéro de semaine (en B3)

= NO.SEMAINE(A3;2) 2 ici pour faire débuter la semaine le lundi

- pour avoir le début de semaine d'après le numéro de semaine (en B4)

="01/01"+7*(B3-1) -JOURSEM("01/01"+7*(B3-1);3) 3 pour faire débuter la semaine le lundi (tu mets 2 pour démarrer la semaine le dimanche).

si tu mets simplement :

="01/01"+7*(B3-1)

tu obtiens date de départ de la semaine donnée en B3.
 
R

Rhodan

Guest
salut
encore une formule pour calculer le N° de semaine sans macro...
je sais ce n'est pas demandé mais ça peut servire!!!
merci à celui ou celle qui me l'a donné il y a trois mois...

plus plus



=ENT((ton jour-(DATE(ANNEE(ton jour-JOURSEM(ton jour-1)+4);1;3)-JOURSEM(DATE(ANNEE(ton jour-JOURSEM(ton jour-1)+4);1;3)))+5)/7)


remplacer "ton jour" par la cellule au format date (n'mporte kel format date)
 
T

tiptop

Guest
Bonjour à tous,

J'ai 50 utilisateurs qui travaillent sur le même tableau Excel 97 et 2000 en français avec la fonction No.Semaine().
Dans le cadre de l'internationalisation de l'entreprise, nous sommes en cours de migration "au fil de l'eau" (c'est à dire que seul les postes amortis sont remplacés, ce n'est pas un déployement massif, j'ai donc un public hétéroclyte) et nous installation à présent Office 2000 US + pack langue FR.
La fonction se nomme alors NumWeek().
Impossible de changer le tableau puisque la migration définitive de tous les postes va prendre 3 ans.

Connaitriez vous un moyen de faire comprendre No.Semaine() aux postes en Office 2000 US ou NumWeek() au poste en Office 2000 FR.
 
T

Ti

Guest
oui, tu charges un de mes utilitaires, TraducTi que tu dois pouvoir trouver dans les téléchargements du site (mais avec la nouvelle classification de David, je ne sais plus dans quelle rubrique). Celeda l'a inclue dans un de ses packs, mais je ne sais plus lequel.

C'est une macro complémentaire qui sait traduire automatiquement les fonctions de l'utilitaire d'analyse.
 
L

Lapou

Guest
Bonjour le Forum, le fil...

Y'a aussi celle ci :
=ENT((A1-SOMME(MOD(DATE(ANNEE(A1-MOD(A1-2;7)+3);1;2);{1E+99;7})*{1;-1})+5)/7)

mais je n'arrive pas à la décomposer pour comprendre le raisonnement donc si vous pouviez m'aider ;-)

Merci bcp
Bonne journée à tous ;-)
 

Discussions similaires

Réponses
5
Affichages
472
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…