J'ai un petit soucis avec mon pgm vba.
Jusqu'à maintenant l'affichage du n° sem fonctionnait très bien et depuis hier, il ne m'affiche plus rien...
Je ne sais pas si c'est à cause du nombre de ligne du tableau ( environ 430) mais auriez vous une idée de comment résoudre ce problème?
Voici le code utilisé:
Code:
Function prem(an As Integer) As Date
For n = CDate("01/01/" & an) To CDate("07/01/" & an)
If Weekday(n) = 5 Then prem = n - 3
Next n
End Function
Function NOSEM(ladate As Date) As Variant
NOSEM = Int((ladate - prem(Year(ladate))) / 7) + 1
If NOSEM = 53 And Weekday(ladate) < 5 Then NOSEM = "1 de " & Year(ladate) + 1
End Function
Bonjour
Je te conseille plutôt cette fonction de Daniel Maher
Code:
Public Function IsoWeekNum(d1 As Date) As Integer
' Provided by Daniel Maher.
Dim d2 As Long
d2 = DateSerial(Year(d1 - Weekday(d1 - 1) + 4), 1, 3)
IsoWeekNum = Int((d1 - d2 + Weekday(d2) + 5) / 7)
End Function
qui te renvoie le N° de semaine norme européenne à partir de la date
Je viens de tester ton programme et il m'indique "NOM?" dans la colonne du N° semaine. Sais tu pourquoi?
Est-ce parce qu'au paravant j'avais mon mis la formule (=NOSEM (@Date)) dans cette colonne?
Je te mets, en pièce jointe, mon document pour t'aider
Ok maintenant ça fonctionne mais, quand je fais une nouvelle saisie, il ne prend pas en compte la formule.
Il me note bien la date mais, pas le numéro de semaine alors qu'il le fais pour les semaines précédentes...
Chez moi cela fonctionne.
Dans l'exemple que tu as joint, ta ligne sous le tableau n'en fait pas partie.
Efface la
écris une date juste sous le tableau dans la première colonne, la nouvelle ligne se crée avec la formule recopiée et fonctionnelle