Erreur dans un calcul vba

Résolu
Solarel -  
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   - 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

foo
 
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 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 313
 
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
Solarel
 
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 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 313
 
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
Solarel
 
Ok ça marche parfaitement, merci beaucoup!
0