Afficher numéro semaine

dran_200

XLDnaute Occasionnel
bonjour a tous

j'ai trouvé cette macro pour afficher le numéro de la semaine en cellule D1
mais elle met une erreur
quelqu'un a une idée ?

macro :
Range("D1").Activate
ActiveCell.FormulaR1C1 = "=NUM.SEMAINE(RC[-2])"

merci
 

Modeste geedee

XLDnaute Barbatruc
Re : Afficher numéro semaine

Bonsour®
Bonjour à tous,

Peux-tu essayer :
Range("D1").Formula = "=WEEKNUM(RC[-2])"
A+ à tous

:rolleyes:
pour abonder dans ce sens et avec exhaustivité ...

' ----------syntaxe abs : Mot clé US ,
Range("D1").Formula = "=WEEKNUM($B$1)"

' ----------syntaxe abs locale : Mot clé FR ;
Range("E1").FormulaLocal = "=NO.SEMAINE($B$1)"

' ----------syntaxe relative : Mot clé US , RC [ ]
Range("F1").FormulaR1C1 = "=WEEKNUM(RC[-4])"

' ----------syntaxe relative locale : Mot clé FR ; LC ( )
Range("G1").FormulaR1C1Local = "=NO.SEMAINE(LC(-5))"
 

Staple1600

XLDnaute Barbatruc
Re : Afficher numéro semaine

Bonjour à tous

Une autre possibilité
(même si je ne comprends pas pourquoi ne pas simplement utiliser la formule directement (sans vba))
Code vb:
Sub a()
'syntaxe pour sur XL 2013
'je ne sais plus si
NO.SEMAINE.ISO est disponible sur XL2010 et XL2007.
[B1] = Date ' juste pour le test
[D1] = Application.WorksheetFunction.IsoWeekNum([B1])
End Sub
 
Dernière édition:

MJ13

XLDnaute Barbatruc
Re : Afficher numéro semaine

Bonjour à tous

Personnellement, je n'utilise plus No.semaine car elle était buggée il y a queqlques années.

Je préfère ceci:

Code VBA:
Sub sem2()
ActiveCell.Offset(0, 1).Value = Val(Format(ActiveCell.Value, "ww", vbMonday, vbFirstFourDays))
End Sub
 

Modeste geedee

XLDnaute Barbatruc
Re : Afficher numéro semaine

Bonsour®
Bonjour à tous

Personnellement, je n'utilise plus No.semaine car elle était buggée il y a queqlques années.
Je préfère ceci:
Code VBA:
Sub sem2()
ActiveCell.Offset(0, 1).Value = Val(Format(ActiveCell.Value, "ww", vbMonday, vbFirstFourDays))
End Sub

:confused: qui est buggée également ....
:rolleyes:

BUG: Les fonctions Format et DatePart peuvent renvoyer un numéro de semaine erroné pour le dernier lundi de l'année
:rolleyes:
Code:
Function SemISO (MyDate As Date) As Integer   ' Week Of Year
  SemISO= Format(MyDate, "ww", vbMonday, vbFirstFourDays)
  If SemISO > 52 Then
    If Format(MyDate + 7, "ww", vbMonday, vbFirstFourDays) = 2 Then SemISO = 1
  End If
End Function

ou bien :
=ENT(MOD(ENT((A1-2)/7)+0,6;52+5/28))+1
Formule plus courte de numéro de semaine : Forum Excel
 

Pièces jointes

  • Capture.JPG
    Capture.JPG
    30.6 KB · Affichages: 77
  • Capture.JPG
    Capture.JPG
    30.6 KB · Affichages: 76
  • Capture.JPG
    Capture.JPG
    30.6 KB · Affichages: 72

Discussions similaires

Réponses
24
Affichages
413

Statistiques des forums

Discussions
312 199
Messages
2 086 161
Membres
103 148
dernier inscrit
lulu56