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. 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
      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
          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+
                        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 ?