NUMERO SEMAINE VB

Bonjour !!!!!!!!!!!!!!!!!!!!!!!

voilà je travail sur un petit bou de programme pour connaitre mon numéro de semaine à l'aide d'une date
j'ai fait quelque recherche, jai vu que je n'étais pas le seul a me pencher sur le problème!
mais un doute me viens ! suite a plusieur algo proposer par d'autre utilisateur

éclairé moi !!!!! :p

ma question est donc : faut t'il ou pas prendre en compte la semaine 53

par exemple le 29/12/2003 fait partie de la semaine 52 , 53 ou de l 1er semaine de 2004
Configuration: Windows XP
Firefox 1.5.0.1

12 réponses

  1. Contributeur
    Bonjour,
    Il n'y a que 52 semaines dans une année.
    Pour éviter la semaine 53, normalement ont ne commence à compté les semaines que si le 1er lundi est < que le 4ém jour.
    Et au bout ont met une condition Si >52 then WE = 52.
    A+
    1. je mexplique un peu mieu !

      je voudrais avoir un calendrier semaine ( excel) qui commence selon la semaine actuelle qui s'etalle sur 3-4 années

      ex nous somme le 28 mai soit semaine 22 je voudrais que la semaine prochaine avoir la semaine 23 ( j'ai besoin que des jours ouvrés, donc je pense qu'il faut que je jou avec les vendredi de chaque semaine )

      2008 2009 ect
      ________________________________________________________________
      S22 | S23 | S24 | S25 ect.....S52. S1 | S2 | ect

      et avoir la semaine prochaine avoir

      2008 2009 ect
      ________________________________________________________________
      S23 | S24 | S25 | S26 ect.....S52. S1 | S2 | ect

      :)

      merci a l'avance pour tout
      1. Contributeur
        Dans l'exemple que tu donne ou intervienent les jours ouvrables ? je comprend pas bien.
        Parce que pour les semaines y à que de les inscrire ?
        1. bonsoir lermite222,

          non il est vrai que pour l'instant je n'ais pas besoin de met jours ouvrés ( lundi à vendredi) et pas ouvrables ( lundi à samedi)
          car au début je voulais faire mon calendrier par jours et donc mes jours ouvrés!
          car aprés avoir créer mon calendrier je voudrais distribuer des charges que jai calculer par jours

          n'ésité pas à demander si vous trouver pas mon explication trés claire

          merciiii
          1. Contributeur
            Behhhh alors.. juste faire une boucle qui tourne sur tes cellules et qui inscrive S22 : S23 : S24 etc jusque 52 et tu recommence à 1 pour les années suivantes.. je vois pas où est le problème.
            1. Re tout le monde xD

              bah voila ce que j'ai fait :

              '**
              'Création du calendrier
              '**
              '
              Windows("MAMACRO.xls").Activate
              Worksheets("Feuil1").Activate

              dt = Format(Date, "dd - mm - yyyy")' je prend en référence ma date d'aujourdhui
              semaineactuelle = Format(dt - 2, "ww", vbSaturday)'je calcule dans quelle semaine nous nous trouvons
              Worksheets("Feuil1").Cells(7, 36).Value = semaineactuelle ' je commence mon calendrier à la semaine actuelle
              Cells(7, 36).Interior.ColorIndex = 8

              For J = 37 To 200
              semaineactuelle = semaineactuelle + 1 ' a chaque changement de collone je change de semaine
              Worksheets("Charges techniciens").Cells(7, J).Value = semaineactuelle
              Cells(7, J).Interior.ColorIndex = 8

              If Worksheets("Charges techniciens").Cells(7, J).Value > "52" Then
              semaineactuelle = 1
              Worksheets("Charges techniciens").Cells(7, J).Value = semaineactuelle
              Cells(7, J).Interior.ColorIndex = 4

              End If
              Next

              mais j'ai un petit probleme je voudrais qu'a chaque changement d'année ( >52 semaine ) changé ma couleur des cellule pour différencier mes années et repartir de 1 jusqu'a 52 !
              ce qu'i n'est pas le cas dans ma boucle
              je commence bien à la semaine 22 jusqu'à 52 pui aprés jai des des semaine de 5 et mon changemen de couleur de se fait que sur la semaine 1

              pouvais vous m'éclairé
              merci merci
              1. Contributeur
                Mettre ta couleur en variable...
                Dim Coul as integer
                Coul=4

                ....
                ....
                If Worksheets("Charges techniciens").Cells(7, J).Value > "52" Then
                semaineactuelle = 1
                coul = coul + 1 'ou faire un select case pour avoir d'autre couleurs
                Worksheets("Charges techniciens").Cells(7, J).Value = semaineactuelle
                Cells(7, J).Interior.ColorIndex = coul

                End If

                1. merci lermite222,

                  a vrai dire la couleur n'est pas importante !
                  ma 1er année se passe bien
                  mais celles qui suivent sont des année de 5 semaine ....

                  encore meci
                  1. j'ai trouvé le probleme était le 52 entre ""

                    voilà mon code
                    '**
                    'Création du calendrier
                    '**
                    '
                    Windows("MAMACRO.xls").Activate
                    Worksheets("Feuil1").Activate

                    Dim coul As Integer
                    coul = 6

                    semaineactuelle = TrouverNuméroSemaine(dt)'je fait appel à une fonction et "dt" est ma date du jour
                    Worksheets("Feuil1").Cells(7, 36).Value = semaineactuelle
                    Cells(7, 36).Interior.ColorIndex = coul

                    For J = 37 To 200 'j'ai pri 200 car je voulais m'étallé sur au moins 2-3ans
                    semaineactuelle = semaineactuelle + 1
                    Worksheets("Feuil1").Cells(7, J).Value = semaineactuelle
                    Cells(7, J).Interior.ColorIndex = coul

                    If Worksheets("Feuil1").Cells(7, J).Value > 52 Then
                    semaineactuelle = 1
                    coul = coul + 1
                    Worksheets("Feuil1").Cells(7, J).Value = semaineactuelle
                    Cells(7, J).Interior.ColorIndex = coul

                    End If
                    Next

                    n'ésité pas à critiqué mon code ! je pense qu'il a moyen de l'amélioré! voilà
                    1. Contributeur
                      Le code est bien fait.
                      2 petite remarques
                      Indenté ton code le rend plus compréhensible, aussi bien pour la lecture que pour un éventuel déboggage.
                      Sub TaMacro()
                      Dim coul As Integer
                      
                      
                          Windows("MAMACRO.xls").Activate
                          Worksheets("Feuil1").Activate
                          
                          coul = 6
                      
                          'je fait appel à une fonction et "dt" est ma date du jour
                          semaineactuelle = TrouverNuméroSemaine(dt)
                          Worksheets("Feuil1").Cells(7, 36).Value = semaineactuelle
                          Cells(7, 36).Interior.ColorIndex = coul
                          
                          'j'ai pri 200 car je voulais m'étallé sur au moins 2-3ans
                          For j = 37 To 200
                              semaineactuelle = semaineactuelle + 1
                              Worksheets("Feuil1").Cells(7, j).Value = semaineactuelle
                              Cells(7, j).Interior.ColorIndex = coul
                          
                              If Worksheets("Feuil1").Cells(7, j).Value > 52 Then
                                  semaineactuelle = 1
                                  coul = coul + 1
                                  Worksheets("Feuil1").Cells(7, j).Value = semaineactuelle
                                  Cells(7, j).Interior.ColorIndex = coul
                              End If
                          Next j
                      
                      End Sub

                      Sur les Next, bien que ce ne soit pas obligatoire, ajouter l'identifiant du For, sa simplifie quand
                      il y a plusieur For/Next imbriqué.
                      Bonne continuation.
                      A+
                      1. ok merci pour tes conseils :)
                        parcontre comment fait on pour " indenté"
                        1. Contributeur
                          dans l'éditeur de code d'excell tu emploi les tabulations.
                          Et dans l'éditeur texte de CCM tu sélectionne la partie code et tu clic sur le bouton 'Conserver la mise en forme' le bouton blanc dans la barre d'outils juste au dessus de l'éditeur.
                          A+