numero de semaine (VBA)

bigmousse

XLDnaute Occasionnel
Pourquoi lorsque je converti la fonction sous excel :

=ENT(MOD(ENT((B2-2)/7)+0,6;52+5/28))+1

en code VBA, ça ne fonctionne pas, la fonction Mod sous VBA prend t'il en compte toutes les décimales de n2????


Code:
n1 = (Int((Ma_Date - 2) / 7) + 0.6)
n2 = 52 + 5 / 28
n3 = n1 Mod n2
N_SEMAINE = Int(n3) + 1

Avez-vous des solutions???

Merci
Mousse
 
Dernière édition:

ROGER2327

XLDnaute Barbatruc
Re : numero de semaine (VBA)

Bonjour à tous
Vous me flattez, Messieurs…
À la demande générale :
Code:
[COLOR=DarkSlateGray][B]Function ISO([COLOR=Red]ByVal[/COLOR] r, Optional x As Byte = 0)
[COLOR=Sienna]' Transcription ISO d'une date grégorienne r.
'
'.__________________________________________________________________________________________.
'|           |                   |              |        |                                  |
'|     x     |       retour      |    format    |  type  |              exemple             |
'|___________|___________________|______________|________|__________________________________|
'|           |                   |              |        |                                  |
'| 0 ou omis | date ISO complète | "aaaa-WSS-J" | String |=ISO("3/3/2003")   | 2003-W10-1   |
'|     1     | semaine ISO       | "aaaa-WSS"   | String |=ISO("3/3/2003";1) | 2003-W10     |
'|     2     | semaine ISO       | SS           | Double |=ISO("3/3/2003";2) |           10 |
'|                                                                                          |
'|    Validité probable : lundi premier janvier 1900 - vendredi 31 décembre 9999 inclus.    |
'|__________________________________________________________________________________________|
'[/COLOR]
Application.Volatile
Dim a&, b&
  r = CDate(r)
  r = r - (r < 61)
  a = r - Weekday(r, vbMonday)
  b = DateSerial(Year(a + 4), 1, 1)
  ISO = IIf(x < 2, Year(b) & "-W", 0) + (Format((a - b + Weekday(b, vbMonday)) \ 7 + (Weekday(b, vbMonday) > 4) + 1, "00") & IIf(x < 1, "-" & Weekday(r, vbMonday), ""))
End Function[/B][/COLOR]
ROGER2327
#4567


Vendredi 20 As 138 (Saint Olibrius, augure, SQ)
2 Frimaire An CCXIX
2010-W47-1T14:24:55Z
 
Dernière édition:

ROGER2327

XLDnaute Barbatruc
Re : numero de semaine (VBA)

Bonjour à tous
On n'est jamais assez attentif !
Il y avait encore une erreur dans la fonction que je donne plus haut : l'argument r de la fonction doit être passé par valeur.
(C'est corrigé.)

Avec mes excuses,
ROGER2327
#4614


Mercredi 25 As 138 (Saint Lewis Caroll, profesSainteur, SQ)
7 Frimaire An CCXIX
2010-W47-6T11:49:17Z
 

Discussions similaires

Statistiques des forums

Discussions
312 559
Messages
2 089 604
Membres
104 225
dernier inscrit
Misterpat63