N° semaine sur une colonne

alcalzone

XLDnaute Occasionnel
Bonsoirà tous,

Je fais une fois de plus appel à vous.
J'ai dans la colonne A une liste de 5000 dates.
Je voudrai que le N° de semaine correspondant s'affiche en colonne B via VBA

Merci d'avance de votre aide
 

ROGER2327

XLDnaute Barbatruc
Re : N° semaine sur une colonne

Bonsoir à tous


En l'absence de support, voici quelques éléments (déjà maintes fois communiqués dans ce forum).​


ROGER2327
#5387


Vendredi 20 Décervelage 139 (Saint Outlaw, aristocrate - fête Suprême Quarte)
27 Nivôse An CCXX, 8,8486h - plomb
2012-W03-2T21:14:12Z
 

Pièces jointes

  • Date_ISO.xlsm
    20.3 KB · Affichages: 100
  • Date_ISO.xlsm
    20.3 KB · Affichages: 101
  • Date_ISO.xlsm
    20.3 KB · Affichages: 102
Dernière édition:

alcalzone

XLDnaute Occasionnel
Re : N° semaine sur une colonne

Bonsoir JCGL,
Un =NO.semaine(A2) fait l'affaire mais m'oblige à avoir quelque part 5000 lignes de formule, ce qui n'est pas le cas en VBA.
J'avais pensé à une boucle incluant la formule "=weeknum(a:a)" mais je n'y arrive pas

A+
 

JCGL

XLDnaute Barbatruc
Re : N° semaine sur une colonne

Bonjour à tous,

Tes 5000 dates en A2 à A5002.

Fais un test de rapidité par une formule déposée par VBA.
Sub Test_Formule()
Range("B2:B5002").Formula = "=INT(MOD(INT((RC[-1]-2)/7)+3/5,52+5/28))+1"
End Sub

et par DatePart

Sub Test_Code()
Dim X%
Application.ScreenUpdating = 0
For X = 2 To 5002
Range("B" & X) = DatePart("WW", Range("A" & X), vbMonday, vbFirstFourDays)
Next
End Sub

A + à tous
 

alcalzone

XLDnaute Occasionnel
Re : N° semaine sur une colonne

Merci JCGL pour ta réponse qui est toujours efficace.
Peux-tu me dire pourquoi tu te bases par rapport au lundi pour déterminer le N° de semaine?
Pour la date du 01/01/2012 ça affiche semaine 52 au lieu de 1
Y a t'il moyen de se caller sur le calendrier.
Si ce n'est pas abuser bien sur
A+
 

JCGL

XLDnaute Barbatruc
Re : N° semaine sur une colonne

Bonjour à tous,

Jette un oeil sur la norme ISO 8601

En particulier ceci :
Définitions équivalentes pour la semaine 01 de l'année ISO
  • La semaine avec le premier jeudi de l'année,
  • La semaine avec le premier jour ouvré de l'année (les samedis, dimanches et 1[SUP]er[/SUP] janvier étant comptés comme non ouvrés),
  • La semaine du 4 janvier,
  • La première semaine de l'année avec au moins quatre jours,
  • La semaine dont le lundi est compris entre le 29 décembre et le 4 janvier,
  • La semaine dont le jeudi est compris entre le 1er et le 7 janvier.

A + à tous
 

ROGER2327

XLDnaute Barbatruc
Re : N° semaine sur une colonne

Re-bonsoir à tous


Malheureusement la formule
Code:
DatePart("WW", Range("A" & X), vbMonday, vbFirstFourDays)
est fausse.
Par exemple : 31/12/2007 <=> 2008-W01-1 (et pas 2007-W53-1)​


ROGER2327
#5388


Vendredi 20 Décervelage 139 (Saint Outlaw, aristocrate - fête Suprême Quarte)
27 Nivôse An CCXX, 9,3388h - plomb
2012-W03-2T22:24:47Z
 

Discussions similaires

Réponses
8
Affichages
186

Statistiques des forums

Discussions
312 379
Messages
2 087 761
Membres
103 661
dernier inscrit
fcleves