Erreur de compilation dans edition de macro

Rapheux

XLDnaute Junior
Bonjour tout le monde,

Je ne comprend pas pourquoi il y a une erreur de compilation avec :

Function Nosemaine(jour as range) as long
Nosemaine = ENT(MOD(ENT((jour.value-2)/7)+0,6;52+5/28))+1
End function

alors que la même formule dans la barre de formule fonctionne bien !

Merci d'avance pour vos réponses.

Cordialement,
Rapheux
 

job75

XLDnaute Barbatruc
Re : Erreur de compilation dans edition de macro

Bonjour Rapheux,

Les fonctions VBA ne sont pas celles des feuilles de calcul ! Essayer :

Code:
Function Nosemaine(jour As Range) As Long
Nosemaine = Int((Int((jour.Value - 2) / 7) + 0.6) Mod (52 + 5 / 28)) + 1
End Function

Par ailleurs, il arrive que Int() crée des problèmes sur les nombres décimaux, peut-être faut-il utiliser CDec :

Code:
Nosemaine = Int(CDec((Int(CDec((jour.Value - 2) / 7)) + 0.6) Mod (52 + 5 / 28))) + 1

Edit : la fonction VBA ne renvoie pas la bonne valeur, je cherche pourquoi.

A+
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : Erreur de compilation dans edition de macro

Re,

La fonction Mod en VBA ne donne pas le résultat espéré.

Alors on va simplement adapter en VBA la formule de la feuille de calcul :

Code:
Function Nosemaine(jour As Range) As Byte
Nosemaine = Evaluate("INT(MOD(INT((" & CDbl(jour) & "-2)/7)+0.6,52+5/28))+1")
End Function

A+
 

Discussions similaires

Réponses
3
Affichages
531

Statistiques des forums

Discussions
312 333
Messages
2 087 371
Membres
103 528
dernier inscrit
maro