CALCUL AUTOMATIQUE DES N° DE SEMAINE

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 - 26 nov. 2006 à 05:47
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 17 mars 2009 à 08:48
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/40465-calcul-automatique-des-n-de-semaine

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
17 mars 2009 à 08:48
utilise plutôt le forum pour poser ce genre de question, elle n'a pas de rapport avec la source. merci
jodeciters Messages postés 7 Date d'inscription vendredi 26 décembre 2008 Statut Membre Dernière intervention 16 mars 2009
16 mars 2009 à 09:24
Bonjour à tous,

Béotien je bricole un programme et je souhaite que les lignes triées (dont une colonne fait apparaître la date du jour), apparaisent de couleurs différentes en fonction des semaines paires et impaires.
J'ai bien trouvé différentes propositions mais je ne sais pas comment on fait le lien entre une macro qui commence par:
Sub ()
et les exemples donnés qui commencent par "Public Function"
merci pour votre aide
SASC01 Messages postés 1 Date d'inscription mardi 18 septembre 2007 Statut Membre Dernière intervention 18 septembre 2007
18 sept. 2007 à 11:19
Bonjour,

semaine = DatePart(DateInterval.WeekOfYear, Now) semble fonctionner !
Kristof_Koder Messages postés 918 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 27 octobre 2008 10
6 août 2007 à 15:20
Il est ou le bug de la fonction no.semaine de Excel ? avec le 29/12/2007, j'obtient 52 ! Cela me parait juste ! Non ?
fpetit25 Messages postés 1 Date d'inscription mardi 21 novembre 2006 Statut Membre Dernière intervention 7 décembre 2006
7 déc. 2006 à 04:48
Bonjour,

Je pense que la plupart des personnes n'ont pas compris à quoi cela servait. Ce code permet d'écrire les N° de semaine dans des cellules d'excel avec l'année correspondante et non pas calculer juste le N° des semaines sinon le code aurait fait que quelques lignes. De plus la fonction dans excel no.semaine à un bug (faites un test du 29/12/2007 !!!).
Maintenant je l'ai optimisé et il ne fait plus que 50 lignes.

Merci pour toutes ces remarques.
oommeeggaa3d Messages postés 97 Date d'inscription dimanche 24 avril 2005 Statut Membre Dernière intervention 3 septembre 2010
27 nov. 2006 à 11:36
Personnellement j'utilise un controle MontView et la propriété Week (Monthview.week).
Il suffit de régler le monthview sur la date voulue auparavant et le tour est joué :
Monthview.Value = CDate(MaDate)
NumSemaine=Monthview.week
NETSAGE Messages postés 32 Date d'inscription mercredi 11 août 2004 Statut Membre Dernière intervention 11 mars 2008
27 nov. 2006 à 08:23
C'est trop compliqué, trop long. Je vous donne un tuyeau.
La semaine n° 1 est toujours la semaine du premier Jeudi de l'année. Il suffit de consulter un agenda. Partant de ce principe et tenant compte des années bisextiles on a plus besoin de semaine de référence.
Essayer d'ecrire un truc comme ça
NumSem = NumeroSemaine(MaDate as date)
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
26 nov. 2006 à 19:33
salut,
Dany108, MPi -> n'hésitez pas à ajouter vos proposition sur codyx :
http://www.codyx.org/snippet_calculer-numero-semaine-date_152.aspx

fpetit25 -> à moins que tu ne puisses dire en quoi (ou si) ton code est plus adapté (rapidité, paramètres régionaux, autre...) que ceux proposés, tu as dû te casser la tête mais je vais quand même devoir le désactiver.

tiens-moi au courant stp
++
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
26 nov. 2006 à 15:16
Et moi, sous Excel, j'utilise l' "Utilitaire d'Analyse" dans les macros complémentaires qui permet d'utiliser cette fonction.

=NO.SEMAINE(D1;1) ' où D1 est la date à vérifier

Pour l'instant, ça fonctionne très bien...
dany108 Messages postés 71 Date d'inscription mardi 29 janvier 2002 Statut Membre Dernière intervention 6 janvier 2011 1
26 nov. 2006 à 13:07
En ce qui me concerne je calcul un numéro de semaine comme ceci :
NumSem= Val(Format(MaDate, "ww", vbMonday, vbFirstFourDays))
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
26 nov. 2006 à 05:47
Salut,

il y a beaucoup trop de code, en plus on ne sait pas vraiment comment utiliser ta fonction. Initié ? Bon, soit. Réseau & Internet ? Bon, admettons.

non sans rire, et sans être méchant, je pense que c'est pas une source, et perso, je ne l'aurai pas mise.

En fait, c'est plutôt un snippet (morceau de code) que l'on peut trouver là : www.codyx.org
Un snippet intitulé "Calculer le numéro de la semaine" existe déjà, et en plus performant (et en plusieurs langages) :
http://www.codyx.org/snippet_calculer-numero-semaine-date_152.aspx

Voici ma fonction, que je placerai en niveau débutant, et de catégorie "Date - Trucs et astuces" :

Function WeekNumber(Optional ByVal vDate As Variant) As Byte
If IsMissing(vDate) Then vDate = Date

Dim iNbJour As Integer
Dim iWeekDay As Integer
Dim bValTemp As Byte
Dim a As String
Dim b() As String

iWeekDay = Weekday(CDate("01/01/" & DatePart("yyyy", vDate)))

Select Case iWeekDay
Case 1: bValTemp 5: Case 2: bValTemp 6: Case 3: bValTemp = 0: Case 4: bValTemp = 1: _
Case 5: bValTemp 2: Case 6: bValTemp 3: Case 7: bValTemp = 4
End Select

iNbJour = CLng(DateDiff("d", CDate("31/12/" & DatePart("yyyy", vDate) - 1), vDate))
a = IIf((iNbJour + bValTemp) / 7 < 1, 53, CStr((iNbJour + bValTemp) / 7))
If VarType(a) vbString Then b() Split(a, ","): WeekNumber = b(0): Erase b Else WeekNumber = a
End Function

Sub Exemple_Utilisation()
MsgBox WeekNumber(#1/8/1990#)
MsgBox WeekNumber()
End Sub


Pas besoins de 150 lignes !

++
Rejoignez-nous