Erreur dans un calcul vba

Résolu/Fermé
Solarel - 30 juil. 2013 à 12:11
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 30 juil. 2013 à 14:22
Bonjour,

Dans une macro sur Excel, je demande à entrer un calcul dans une case. Cette formule donne le numéro de la semaine à partir d'une date, la voici:

cell.Formula = "=INT(MOD(INT((" & coltemp & " -2)/7)+0,6;52+5/28))+1"

Ici coltemp correspond à B1.
Lorsque j'entre cette formule manuellement ça fonctionne très bien, je ne comprends pas pourquoi il y a une erreur.

(Pour info, l'erreur affichée est:
Erreur d'éxecution 1004
Erreur définie par l'application ou par l'objet)

Merci pour votre aide!
Arthur
A voir également:

4 réponses

Bonjour
Voila un teste
et regarde aussi dans l'aide 'DatePart'

'yyyy Année
'q Trimestre
'm Mois
'y Jour de l'année
'd Jour
'w Jour de la semaine
'ww Semaine

Range("E5").Value = DatePart("ww", Range("C5"))

Merci michel_m bonne reponse

A+

Maurice
1
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 30/07/2013 à 12:19
Bonjour,

en VBA!
donne le N° de semaine
Function sem_iso(Wdate As Date) As byte
    sem_iso = DatePart("ww", Wdate, vbMonday, vbFirstFourDays)
  End Function
 


Michel
0
Si je comprends bien c'est une fonction pour obtenir le numéro de la semaine plus simplement que la formule que j'essaye d'appliquer?
Je ne comprends pas vraiment comment elle marche par contre.
sem_iso est une variable qui contient 4 données?
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
30 juil. 2013 à 14:22
Pour ma part, je ne comprend pas pourquoi on veut écrire des formules avec VBA alors que VBA a des fonctions qui font le calcul...
au temps d'écrire directement les formules avec Excel

mais dans les formules anglophone

les séparations de paramètres ";" s'écrivent "," et les nombres décimaux "0,6" s'écrivent "0.6"

On peut aussi utiliser formulalocal + facile à gérer pour nous, francophone

Tu peux utiliser la fonction que je t'ai transmis comme fonction personnalisée (formules, insérer une fonction, personnalisée) après l'avoir recopiée dans un module VBA
ainsi si A1 =30/07/13
la fonction
sem_iso(A1) te renverra 31 cad le n° de la semaine
0
Ok ça marche parfaitement, merci beaucoup!
0