Code vba date

Résolu
CHARLYJACK Messages postés 345 Date d'inscription   Statut Membre Dernière intervention   -  
CHARLYJACK Messages postés 345 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

je viens de reprendre un code dans livre
et lorsque je l'enregistre,
j'ai un message concernant un problème de déclaration de variable,

voici le code

Function nbrejoursouvres(date1, date2)
Dim tjour(7) As String
Dim vnbjours As Integer
tjour(1) = 1 'dimanche
tjour(2) = 0 'lundi
tjour(3) = 1 'mardi
tjour(4) = 1 'mercredi
tjour(5) = 1 'jeudi
tjour(6) = 1 'vendredi
tjour(7) = 1 'samedi
For i = date1 To date2
If tjour(Weekday(i)) = 1 Then vnbjours = vnbjours + 1
Next
nbrejoursouvres = vnbjours




End Function


je veux utiliser cette fonction dans le cadre d'un gantt
j'ai besoin d'éliminer les jours fériés, et d'attribuer la valeur 1 au dimanche.
(le code ci dessus et celui du livre)

Ma question où est le problème de variable ?

merci

Charlyjack


A voir également:

4 réponses

Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
Bonjour,

Pour compter les dimanches, il suffit, dans la première formule, de remplacer <6 par =7
1
CHARLYJACK Messages postés 345 Date d'inscription   Statut Membre Dernière intervention   1
 
Bonjour
je ne veux compter que les dimanches uniquement,
voire les jours fériés

Cdt

Charlyjack
0
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
C'est bien ce que je t'ai dit : Pour compter les dimanches
0
CHARLYJACK Messages postés 345 Date d'inscription   Statut Membre Dernière intervention   1
 
A ben oui,
autant pour moi,
je n'avais pas remplacer le signe inférieur par =

merci beaucoup pour cette formule
qui fonctionne parfaitement

Charlyjack
0
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
De rien, au plaisir de te relire sur le forum
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
Bonjour,
problème de déclaration de variable?
==> For i = date1 To date2
i est déclaré comme quoi dans ta fonction?
Essaye donc ceci :
Dim tjour(7) As Integer 'Comme l'a si justement dis Lermitte222 (salut)  
Dim vnbjours As Integer  
Dim i As Date

Franck P
1
CHARLYJACK Messages postés 345 Date d'inscription   Statut Membre Dernière intervention   1
 
Bonsoir
merci à toi pijaku
dim i as date a réglé mon problème
je vais jeter le livre qui me donne des codes erronés
encore merci

Charlyjack
0
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
Bonjour,

Pourquoi écrire une macro quand une simple formule suffit ?
Date1 en A1 et Date2 en B1,
en C1 : =SOMMEPROD((JOURSEM(LIGNE(INDIRECT(A1&":"&B1));2)<6)*1)

Ou encore plus simple en activant la macro complémentaire utilitaire d'analyse (analysis tool) :
=NB.JOURS.OUVRES(A2;B2)

Cordialement
Patrice
0
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
Effacé
0
CHARLYJACK Messages postés 345 Date d'inscription   Statut Membre Dernière intervention   1
 
Salut Patrice et merci de l'interêt que tu portes à ma question,
En fait j'ai besoin qu'excel identifie le dimanche, et attribue la valeur 1.

Le but est d'ajouter une journée de travail à une tâche dans mon GANTT
puisque le dimanche est non travaillé.

merci de ton aide

Charlyjack
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Bonjour,
Après tout, tu fais comme tu veux. :-)
L'erreur..
Dim tjour(7) As Integer   

A+
--Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
0
CHARLYJACK Messages postés 345 Date d'inscription   Statut Membre Dernière intervention   1
 
Bonjour lermitte,
après essai ça ne fonctionne pas,
j'ai toujours le même message d'erreur !

cdt

David
0