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 -
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
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
4 réponses
-
Bonjour,
Pour compter les dimanches, il suffit, dans la première formule, de remplacer <6 par =7 -
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 -
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 -
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.