Calcul hebdomadaire - Bug de l'An 2013

Résolu
Co_nexion Messages postés 333 Statut Membre -  
Co_nexion Messages postés 333 Statut Membre -
Bonjour,

Pour commencer cette nouvelle année, je vous souhaite à toutes et à tous mes meilleurs voeux pour cette année 2013.

2013 étant arrivé, les problèmes de macro concernant le décompte par semaine a suivi.

Pour être explicite voici ci-dessous le fichier récalcitrant :

https://www.cjoint.com/c/CAkkPkwRj3i

Mon problème vient de l'onglet synthèse et plus précisément du bouton mise à jour CDD. En effet, la macro se bloque et je n'arrive pas à trouver l'origine.

Je me doute cependant plus ou moins du problème. En effet ce tableau de synthèse, marchait très bien en 2012 et dorénavant (en 2013) il ne doit plus rapproprier les données de 2012 mais seulement celles de 2013 et c'est à mon avis cela qui le fait déraper.

Merci d'avance pour tous vos conseils.

Pour information, je fonctionne sous excel 2010.

1 réponse

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour et bonne annee

    If NoSemaineISO(CDate("01/01/" & Year(c) + 1)) > 51 Then sem = NoSemaineISO(CDate("01/01" & Year(c) + 1)) ' semaine 1er janvier année suivante

    Manque un / apres 01/01 apres le Then. Mais vous allez avoir un probleme avec semaines ici:

                If Application.Weekday(c, 2) < 7 Then
                    semaines(sem, 0) = semaines(sem, 0) - 1
                End If
    


    Il y a 53 semaines en 2016, vous faites un redim semaines sur l'annee en cours 2013 a 52 semaines donc depassement de tableau

    A corriger

    A+
    1
    1. Co_nexion Messages postés 333 Statut Membre
       
      Bonjour f89,

      Je vous avoue que j'ai un peu de mal à appréhender votre explication ce qui rend compliquer la modification sur ces lignes. Pourriez-vous m'éclairer un peu plus sur le sujet ? Merci d'avance
      0
    2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Re,

      ligne modifiee
      If NoSemaineISO(CDate("01/01/" & Year(c) + 1)) > 51 Then sem = NoSemaineISO(CDate("01/01/" & Year(c) + 1)) ' semaine 1er janvier année suivante

      Vous serez vite au courant pour la suite
      0
    3. Co_nexion Messages postés 333 Statut Membre
       
      Merci,

      Et j'attendrais la suite pour comprendre...
      0