mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 2011
-
26 nov. 2006 à 05:47
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDerniè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.
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 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és7Date d'inscriptionvendredi 26 décembre 2008StatutMembreDernière intervention16 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és1Date d'inscriptionmardi 18 septembre 2007StatutMembreDernière intervention18 septembre 2007 18 sept. 2007 à 11:19
Kristof_Koder
Messages postés918Date d'inscriptionvendredi 3 août 2007StatutMembreDernière intervention27 octobre 200810 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és1Date d'inscriptionmardi 21 novembre 2006StatutMembreDerniè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és97Date d'inscriptiondimanche 24 avril 2005StatutMembreDerniè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és32Date d'inscriptionmercredi 11 août 2004StatutMembreDernière intervention11 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és13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 26 nov. 2006 à 19:33
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és3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 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és71Date d'inscriptionmardi 29 janvier 2002StatutMembreDernière intervention 6 janvier 20111 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és6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 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
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
17 mars 2009 à 08:48
16 mars 2009 à 09:24
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
18 sept. 2007 à 11:19
semaine = DatePart(DateInterval.WeekOfYear, Now) semble fonctionner !
6 août 2007 à 15:20
7 déc. 2006 à 04:48
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.
27 nov. 2006 à 11:36
Il suffit de régler le monthview sur la date voulue auparavant et le tour est joué :
Monthview.Value = CDate(MaDate)
NumSemaine=Monthview.week
27 nov. 2006 à 08:23
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)
26 nov. 2006 à 19:33
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
++
26 nov. 2006 à 15:16
=NO.SEMAINE(D1;1) ' où D1 est la date à vérifier
Pour l'instant, ça fonctionne très bien...
26 nov. 2006 à 13:07
NumSem= Val(Format(MaDate, "ww", vbMonday, vbFirstFourDays))
26 nov. 2006 à 05:47
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 !
++