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

4 réponses

  1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
     
    Bonjour,

    Pour compter les dimanches, il suffit, dans la première formule, de remplacer <6 par =7
    1
    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
    2. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
       
      C'est bien ce que je t'ai dit : Pour compter les dimanches
      0
    3. 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
    4. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
       
      De rien, au plaisir de te relire sur le forum
      0
  2. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    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
    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
  3. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
     
    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
    1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
       
      Effacé
      0
    2. 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
  4. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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
    1. 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