Code vba date

Résolu/Fermé
CHARLYJACK Messages postés 353 Date d'inscription mardi 19 octobre 2010 Statut Membre Dernière intervention 16 mai 2023 - 3 avril 2011 à 20:27
CHARLYJACK Messages postés 353 Date d'inscription mardi 19 octobre 2010 Statut Membre Dernière intervention 16 mai 2023 - 4 avril 2011 à 20:34
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 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
4 avril 2011 à 12:40
Bonjour,

Pour compter les dimanches, il suffit, dans la première formule, de remplacer <6 par =7
1
CHARLYJACK Messages postés 353 Date d'inscription mardi 19 octobre 2010 Statut Membre Dernière intervention 16 mai 2023 1
4 avril 2011 à 12:59
Bonjour
je ne veux compter que les dimanches uniquement,
voire les jours fériés

Cdt

Charlyjack
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
Modifié par Patrice33740 le 4/04/2011 à 13:27
C'est bien ce que je t'ai dit : Pour compter les dimanches
0
CHARLYJACK Messages postés 353 Date d'inscription mardi 19 octobre 2010 Statut Membre Dernière intervention 16 mai 2023 1
4 avril 2011 à 13:42
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 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
4 avril 2011 à 13:59
De rien, au plaisir de te relire sur le forum
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
Modifié par pijaku le 4/04/2011 à 13:43
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 353 Date d'inscription mardi 19 octobre 2010 Statut Membre Dernière intervention 16 mai 2023 1
4 avril 2011 à 20:34
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 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
Modifié par Patrice33740 le 3/04/2011 à 22:04
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 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
Modifié par Patrice33740 le 3/04/2011 à 22:04
Effacé
0
CHARLYJACK Messages postés 353 Date d'inscription mardi 19 octobre 2010 Statut Membre Dernière intervention 16 mai 2023 1
4 avril 2011 à 11:20
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 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
Modifié par lermite222 le 4/04/2011 à 13:07
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 353 Date d'inscription mardi 19 octobre 2010 Statut Membre Dernière intervention 16 mai 2023 1
4 avril 2011 à 13:32
Bonjour lermitte,
après essai ça ne fonctionne pas,
j'ai toujours le même message d'erreur !

cdt

David
0